Php 多个jsonSerialize实体

Php 多个jsonSerialize实体,php,symfony,Php,Symfony,我一直在做一些研究,但没有结果。所以我来这里直接问这个问题 我有一个实体,为了将它返回到某个api调用中,我需要序列化它 现在我有类似的东西 class Place implements \JsonSerializable{ [...] fields lists [...] public function jsonSerialize(){ return array( "id" => $this->id,

我一直在做一些研究,但没有结果。所以我来这里直接问这个问题

我有一个实体,为了将它返回到某个api调用中,我需要序列化它

现在我有类似的东西

class Place implements \JsonSerializable{
    [...] fields lists [...]

    public function jsonSerialize(){
        return array(
            "id" => $this->id,
            "title"  => $this->title);
   }
}
这是正确的,但是,我希望能够为序列化提供多个定义,因为对于api1,我可能希望返回id和标题,但是对于api2,我希望返回id/标题并继续

有没有办法在jsonSerialize中创建条件?还是其他方式?我很确定我已经在Java中做过类似的事情,这在php中是可能的


感谢您的帮助。

自Symfony 2.7以来,您可以使用序列化程序和序列化程序组提供不同的数据。您可以通过注释进行设置


否则,您可以使用JMSSerializerBundle,它包含alose组和其他有用的特性

我可能是瞎的,但我看不到我们在什么地方说什么字段是在wich条件下序列化的。假设我已经用composer安装了JMS。我猜这是行$serializer->serialize$data,$format;但是在哪里指定了序列化的字段呢?我在回答中添加了另一个链接,这正是我想要的,谢谢。遗憾的是,我自己还没有找到链接: