【问题标题】:Symfony FOSRESTBundle expose on conditionSymfony FOSRESTBundle 在条件下公开
【发布时间】:2017-07-04 05:03:50
【问题描述】:

我有一个具有以下属性的实体(餐厅)

/**
 * @ORM\OneToMany(targetEntity="Review", mappedBy="restaurant")
 *
 * @Serializer\Expose
 * @Serializer\Groups({"all"})
 *
 */
private $reviews;

在 Review 实体中我有以下属性

/**
 * @var bool
 *
 * @ORM\Column(name="is_accepted", type="boolean")
 *
 * @Serializer\Expose
 * @Serializer\Groups({"all"})
 */
private $isAccepted;

显然我返回的 JSON 是这样的

{
    "id": 291,
    "user": {
      "id": 385
    },
    "comment": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
    "is_verified": true,
    "total_rating": 5.5,
    "is_accepted": false
  },
  {
    "id": 292,
    "user": {
      "id": 293
    },
    "comment": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
    "is_verified": true,
    "total_rating": 8,
    "is_accepted": true
  },

我的问题是我怎样才能只公开 is_accepted = true ?有直接的方法吗,还是应该手动过滤?谢谢

【问题讨论】:

    标签: symfony annotations fosrestbundle


    【解决方案1】:

    您可以在方法上使用@VirtualProperty 注释,并且仅在它实际上被接受时才返回它的评论

    【讨论】:

      猜你喜欢
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      相关资源
      最近更新 更多