1 回答
TA贡献1833条经验 获得超4个赞
您应该看看JMS Serializer,它是一个用于序列化对象的强大库,您可以通过配置哪些字段应该保留在序列化过程中,轻松地在实体上使用 @Groups 注释来完成您的要求。
书.php
use JMS\Serializer\Annotation\Groups;
class Book {
/** @Groups({"Concise"}) */
private $id;
/** @Groups({"Concise"}) */
private $name;
/** @Groups({"Concise"}) */
private $authors;
...
}
如果您只想在序列化图书实体时检索作者姓名,只需在姓名字段上添加@Groups 注释。
作者.php
use JMS\Serializer\Annotation\Groups;
class Author {
private $id;
/** @Groups({"Concise"}) */
private $name;
private $books;
...
}
然后
use JMS\Serializer\SerializerBuilder;
use JMS\Serializer\SerializationContext;
$serializer = SerializerBuilder::create()->build();
$context = SerializationContext::create()->setGroups(array('Concise'));
$json = $serializer->serialize($book, 'json', $context);
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报