2017-08-23 60 views
0

我想驗證一個BirthdayType字段。表單字段是這樣的:你如何驗證Symfony的BirthdayType字段?

->add('birthday', BirthdayType::class, [ 
    'placeholder' => [ 
     'year' => 'select-year', 
     'month' => 'select-month', 
     'day' => 'select-day', 
    ] 
]) 

和字段有效性的定義是這樣的:

/** 
* @Assert\Date(
*  message = "Field should be a date" 
*) 
* 
* @Assert\NotBlank(
*  groups = {"Signup"}, 
*  message = "Field must not be blank" 
*) 
* 
* @ORM\Column(type="string", name="birthday") 
*/ 
private $birthday; 

在表單提交,這是什麼貼到控制器:

[form] => Array 
    (
     [birthday] => Array 
      (
       [year] => 
       [month] => 
       [day] => 
      ) 
    ... 
    ) 

當驗證運行,所有其他表單域都被正確驗證,除了這一個。 我是否錯過了明顯的阻止該字段被驗證爲日期/生日的內容?

我試着將這些窗體字段,但他們似乎都沒有效果:

'error_bubbling' => true//false, 
'compound' => false//true 

回答

1

的BirthdayType返回日期時間Symfony Doc

在你@ORM \列註釋嘗試設置類型=「日期」。