【问题标题】:Apigility+Doctrine: custom responseApigility+Doctrine:自定义响应
【发布时间】:2016-10-26 12:48:31
【问题描述】:

我有一个在 Apigility + Doctrine 上运行的项目。从头开始(无需编写额外代码即可自动),我可以通过分页、过滤等检索实体和集合。

这在检索数据库行时是完美的,但是,大多数服务需要返回更多的数据。例如:“任务”有父项的待办事项列表,如果你想像一棵树一样检索它,你必须先处理它。很多时候,我需要标志来告诉前端如何处理数据或键以显示或隐藏内容。有时检索未在数据库中表示为 FK 或 PK 等的额外信息很有用。

到目前为止,使用 Apigilty+Doctrine,如果我想在输出中添加任何信息,我必须修改实体,设置正确的键,并且它可以工作。但是,从前面的示例中您可以看到,我需要的数据不是来自数据库,或者我不能简单地将关系表达为数据库依赖关系。

问题:

  1. 这样做的正确方法是什么?
  2. 是否有关于此问题的文档?
  3. 如何自定义输出以保持正确的 HAL 结构?

【问题讨论】:

    标签: php zend-framework doctrine-orm doctrine laminas-api-tools


    【解决方案1】:

    默认情况下,Entity 值将按原样作为响应给出。如果要修改值(例如:检索父数据、检索子数据或修改数据格式),您应该为此Entity 创建一个Hydrator,并为此Entity 值自定义Hydrator Strategy

    这是我的 ApigilityDoctrine 项目中的 Hydrator 示例

    https://github.com/aqilix/zf3-apigilty-oauth2/blob/1.0.1/module/User/src/V1/Hydrator/UserProfileHydratorFactory.php

    【讨论】:

      猜你喜欢
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      相关资源
      最近更新 更多