【问题标题】:Symfony - Transform Data before sending to viewSymfony - 在发送到视图之前转换数据
【发布时间】:2017-03-29 11:56:21
【问题描述】:

嗨!

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

例如,我有一个带有 Category 字段的 Product 实体,它是对 Category 实体的引用。在输出中,我不想显示包含整个类别的 json,而只显示其 ID 字段。

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

我想问一下,是否有任何“标准”解决方案如何做到这一点,也许使用注释?

谢谢

【问题讨论】:

    标签: php json symfony doctrine-orm


    【解决方案1】:

    我认为实现您想要的最佳实践或标准方法(在返回为 JSON 以查看之前过滤/处理实体数据)是使用序列化程序。您可以考虑使用 Symfony Serializer Bundlehttp://symfony.com/doc/current/components/serializer.htmlJMS Serializerhttp://jmsyst.com/libs/serializer

    我自己推荐JMS,它的文档非常好,定义完全通过注释控制,还有一个经过深思熟虑的事件系统和一些功能,我可以列举如下:

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

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

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

    -- 序列化前和序列化后事件,因此您可以进一步调整数据。

    我可以说 Serializer 与 Forest Bundle 配合得非常好,以至于一旦你习惯了它,你就很难用不同的方式编写你的项目了:D。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2021-08-30
      • 2021-08-24
      • 1970-01-01
      相关资源
      最近更新 更多