@Exclude
注釈を利用するには、SymfonyのExpressionLanguageビットを理解する必要があります。明らかに、注釈で使用される関数(例えば、someAction()
)は、現在のオブジェクトにではなく、表現言語インスタンスに属していることは明らかである。それを登録するには、次の操作を行います。その後、あなたのシリアライザにバインド
$language = new ExpressionLanguage();
$language->register('someAction', function(){}, function ($arguments, $object) {
// your logic goes here
return false;
});
:
$serializer = SerializerBuilder::create()
->setExpressionEvaluator(new ExpressionEvaluator($language))
->build();
次にあなたがこの除外戦略使ってシリアライズすることができるはずです。
/**
* @var string
*
* @ORM\Column(name="full_name", type="text", nullable=true)
* @JMS\Exlude(if="!someAction(object)")
*/
private $fullName;
1を私は確信しているのは、register
コール(コンパイラ用)に空の呼び出し可能コードを渡しており、私はそれにスピンを与え、それが有効であることを確認する手段がありません。
希望します。