【问题标题】:JMSSerializerBundle complex generated valueJMSSerializerBundle 复杂生成值
【发布时间】:2013-01-06 15:56:20
【问题描述】:

我需要在 symfony 2 上为我的网站实现 RESTful API,所以我使用 FOSRestBundle + JMSSerializerBundle

我的实体有这样的序列化器 yml:

Acme\DemoBundle\Entity\Product:
    exclusion_policy: ALL
    accessor_order: custom
    custom_accessor_order: [id, title]
    properties:
        id:
            expose: true

        title:
            expose: true

    virtual_properties:
        getMainPhoto:
            serialized_name: photo

问题是 getMainPhoto 将我的网址返回到 全尺寸 图像。我想在向 api 客户端发送响应之前预处理这个 url,我可以在其中生成新的 url 来调整此类图像的大小版本。我已经在 sf2 中有可以完成这项工作的服务:

$resized_url = $someService->generateResizedUrl($item->getMainPhoto(), 640, 480);

但我不知道如何将这项服务与 JMSSerializer 一起使用。也许在发送响应之前 FOSRestBundle\JMSSerializerBundle 有一些回调?

【问题讨论】:

    标签: symfony fosrestbundle jmsserializerbundle


    【解决方案1】:

    看看the documentation。您可以使用许多事件和/或注释来挂钩序列化过程。

    【讨论】:

      【解决方案2】:

      您可以排除原始 url,然后使用 http://jmsyst.com/libs/serializer/master/event_system#serializer-post-serialize 事件添加调整大小的 url。

      您必须编写一个侦听器,在“产品”实例被序列化时进行侦听。

      【讨论】:

        猜你喜欢
        • 2015-10-08
        • 1970-01-01
        • 1970-01-01
        • 2019-11-13
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-25
        相关资源
        最近更新 更多