相关疑难解决方法(0)

回调序列化器Symfony

我正在运行Symfony 2.7,并且正在尝试将对象(Doctrine实体)输出为JSON。

当我规范化对象时,我想转换它的一些值。为此,我在文档中找到了“ setCallbacks”方法,但对于如何将其应用于我的案例我有些困惑。

有什么方法可以在调用Symfonys序列化程序服务时在所设置的规范化器上调用“ setCallbacks”方法?

这是我要实现的简短示例:

//ExampleController.php

public function getJSONOrderByIdAction($id) {
    $serializer = $this->get('serializer');
    $normalizer = $serializer->getNormalizer(); // <- This is what I'm unable to do

    $dateTimeToString = function ($dateTime) {
        return $dateTime instanceof \DateTime ? $dateTime->format(\DateTime::ISO8601) : '';
    };

    $normalizer->setCallbacks(['time' => $dateTimeToString]);


    $order = $this->getDoctrine()->find("AppBundle:Order", $id);

    return new JsonResponse(["order" => $serializer->normalize($order, null, ["groups" => ["public"]])]);
}
Run Code Online (Sandbox Code Playgroud)

我知道大多数人都已切换到JMS序列化器。似乎内置的序列化程序应该能够处理我要实现的目标。

php serialization symfony

2
推荐指数
1
解决办法
5196
查看次数

标签 统计

php ×1

serialization ×1

symfony ×1