2017-06-23 4 views
2

正確な型またはヌルのエンティティのプロパティを検証できますか? つまり、プロパティはoptinalの正確なタイプの値を持つことができます。Symfonyで許可されたAssert/Typeの使用方法?

は、例えば、プロパティ$日付を設定(\Datetimeタイプ)かないことができます。

/** 
* @ORM\Column(type="datetime", nullable=true) 
* @Assert\Type("\DateTime") 
*/ 
protected $date; 

@ORM\Columnセクションでnullable=trueを気にしない、それだけで検証をモデル化しませ、DB-レベルに適用されます。

問題がです:$日付存在しない場合は、エラーは次のとおりです。

Expected argument of type "DateTime", "NULL" given

+0

'function setDate(\ DateTime $ date = null){'? –

+0

また、['IsNull'](https://symfony.com/doc/current/reference/constraints/IsNull.html)または[' Blank'](https://symfony.com/doc/)を追加するとどうなりますか?現在/参照/制約/ Blank.html)。 –

答えて

0

ではなく@Assert\DateTime()で試してみてください:

/** 
* @ORM\Column(type="datetime", nullable=true) 
* @Assert\DateTime() 
*/ 
protected $date; 

Type力フィールドを指定された型のインスタンスであることを他の制約はNULLでない場合に値を検証します(NotNullなどを除く)。

@Assert\DateTime()は、正しい日付時刻文字列も受け入れることを覚えておいてください。しかし、この値をnullまたは\DateTimeにするためには、適切なセッターでこの値を扱うことができます。

関連する問題