Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-在发送到视图之前转换数据_Php_Json_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony-在发送到视图之前转换数据

Php Symfony-在发送到视图之前转换数据,php,json,symfony,doctrine-orm,Php,Json,Symfony,Doctrine Orm,嗨 我希望在将数据发送到视图之前对其进行转换。该视图是使用FOSRestBundle的json响应 例如,我有一个带有字段Category的产品实体,即对类别实体的引用。在输出上,我不想显示整个类别的json,而只显示其ID字段 当然,您可以进一步处理控制器中的实体,以仅返回类别中的特定字段,但是 我想问,如果有任何“标准”解决方案如何做到这一点,也许可以使用注释 谢谢我认为实现所需的最佳实践或标准方法(在返回JSON查看之前过滤/处理实体数据)是使用序列化程序。可以考虑使用 SyfOffSer

我希望在将数据发送到视图之前对其进行转换。该视图是使用FOSRestBundle的json响应

例如,我有一个带有字段Category的产品实体,即对类别实体的引用。在输出上,我不想显示整个类别的json,而只显示其ID字段

当然,您可以进一步处理控制器中的实体,以仅返回类别中的特定字段,但是

我想问,如果有任何“标准”解决方案如何做到这一点,也许可以使用注释


谢谢

我认为实现所需的最佳实践或标准方法(在返回JSON查看之前过滤/处理实体数据)是使用序列化程序。可以考虑使用<强> SyfOffSerialServer包< /强>:或者<强> JMS序列化器: 我自己推荐JMS一个,它有非常好的文档,定义完全通过注释控制,一个深思熟虑的事件系统和一些功能,我可以列出如下:

--公开/排除特定的实体属性

--将实体转换为JSON后,为其创建虚拟属性(属性)。(例如,如果您有具有属性Price的实体产品,并且希望在JSON对象调用taxPrice中有一个计算字段,那么您可以实现它)

--通过将属性分类到不同的组来访问哪些属性/实体的访问控制

--预序列化和后序列化事件,以便进一步调整数据

我可以说,序列化程序与林包配合得非常好,一旦习惯了它,就很难用不同的方式编写项目:D