【发布时间】:2016-06-30 19:50:19
【问题描述】:
我的表单与设置了约束的模型相关联。当值符合约束时,验证会顺利通过,反之亦然……
除了只有一个字段装饰有似乎永远不会被评估的表达式约束。
我的需要是:如果我的模型的“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" 代替表达式或从 isValidHelpType() 函数内部放置die; 时(显然是在 return 语句之前)什么都没有发生.
是否存在某种不同类型的约束,例如 class 级别与具有 XOR 行为的 property 级别?无论如何,你知道这里发生了什么吗?
谢谢。
【问题讨论】:
标签: validation symfony