2017-05-01 3 views
0

私のプロジェクトでJMS \シリアライザを使用していて、その中の配列が空の場合にのみ1つのプロパティを無視します。@ JMS プロパティが空の場合のみ除外

私のような何か試してみました:

@JMS\Exclude(if="count('$this->required') === 0") 
or 
@JMS\Exclude(if="empty('required')") 

をしかし、構文エラーを得ました。

誰もが私にこれを助けることができますか?

ありがとうございます。

+0

あなたが '@JMS \ Exclude(if =" <1 ")'を使用することができるドキュメントを読むことができるのですか? –

+0

"exclusionStrategy"を試してみてください。http://stackoverflow.com/questions/21916450/how-do-i-create-a-custom-exclusion-strategy-for-jms-serializer-that-allows-me-to –

+0

あなたが必要とするものは最近実装されたもので、リリース1.7に入っているので、[it](https://github.com/schmittjoh/serializer/releases)を待つこともできます。これは[@SkipWhenEmpty](https://github.com/schmittjoh/serializer/pull/757/files#diff-9828fde36b4c4800e1d437a28538de94R35)と呼ばれています。これは[bug](https://github.com/schmittjoh/JMSSerializerBundle/issues)です。/373)関連する。 "@ SkipWhenEmpty'この注釈は プロパティで定義して、 の結果が空の場合にプロパティをシリアル化しないように指定することができます。 – BentCoder

答えて

0

あなたが必要としたのは最近リリースされたもので、リリース1.7のため、itを待つかもしれません。このアノテーションは にプロパティに定義することができ@SkipWhenEmpty

@SkipWhenEmptyは結果が 「空」になる場合プロパティをシリアルすべきではないことを示していると呼ばれています。

これはbugです。

関連する問題