![](/img/trans.png)
[英]Symfony2 - JMS Serializer - Exclude entity if getDeleted() is not null
[英]JMS Serializer Exclude Entity field in Symfony2 Controller
我有一個實體,我想在我正在開發的 JSON API 中公開它,問題是在這個特定的控制器中,只有一個我不想公開的字段。 有沒有辦法將它從控制器內部的序列化中排除?
我知道我可以注釋我的實體,因此序列化程序只會通過該字段,但是在所有其他情況下會發生什么? 這真的是個例外。
您可以將每個屬性分配給一個組,然后在從控制器序列化時在上下文中定義該組。
您的實體:
use JMS\Serializer\Annotations as Serializer;
class Comment
{
/** @Serializer\Groups({"main", "secondary"}) */
private $id;
/** @Serializer\Groups({"main", "secondary"}) */
private $title;
/** @Serializer\Groups({"main", "secondary"}) */
private $name;
/** @Serializer\Groups({"main"}) */
private $email;
/** @Serializer\Groups({"main", "secondary"}) */
private $message;
}
然后在你的控制器中
use JMS\Serializer\SerializationContext;
$serializer->serialize(
new Comment(),
'json',
SerializationContext::create()->setGroups(array('secondary'))
);
在此示例中,電子郵件字段從序列化數據中排除,但僅適用於名為secondary
的組。 您當然可以隨意稱呼這些組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.