多个jsonSerialize实体

时间:2019-02-26 14:43:44

标签: php symfony

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

我有一个实体,为了将其返回到一些api调用中,我需要对其进行序列化。

现在我有类似的东西

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

    public function jsonSerialize(){
        return array(
            "id" => $this->id,
            "title"  => $this->title);
   }
}

这是正确的,但是,我希望能够对序列化有多个定义,因为对于api1,我可能想返回id和title,但是对于api2,我想返回id / title然后继续。

有没有办法让jsonSerialize()成为条件?还是其他方式?我很确定我已经在Java中完成了类似的工作,而在php中可能已经实现了。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

否则,您可以使用JMSSerializerBundle,它包含alose组和其他有用的功能。 JMSSerializerBundle