0
我的表單與建立約束的模型綁定在一起。當值符合約束時驗證通過,反之亦然...
除了只有一個字段裝飾有似乎永遠不會被評估的表達式約束。Symfony 3驗證表達式未評估
我需要的是:如果我的模型「helpType」屬性值是不包含在某些陣列,不及格驗證所以我希望下面的代碼工作:
// PostModel.php
/**
* @Assert\Expression(
* "this.isValidHelpType()",
* message="post.create.help-invalid"
*)
* @ORM\Column(type="integer")
*/
protected $helpType;
public function isValidHelpType()
{
return in_array($this->getHelpType(), Post::getHelpTypes());
}
// PostType.php
// …
->add('helpType', TextType::class, [ 'error_bubbling' => true, 'label'=>false ])
// …
約束似乎從來沒有得到執行,因爲無論何時我把"false"
代替表達式,或從內部die;
isValidHelpType()函數(在return語句之前,顯然)沒有任何反應。
是否存在某種不同類型的約束,如class
級別與property
級別的異或行爲?無論如何,這裏有什麼想法?
謝謝。