我在清除从超类扩展的所有验证约束时遇到问题。以下是我的代码
user.php的
* @var string
* @ORM\Column(type="text", unique=true)
* @Assert\NotBlank()
* @Assert\NotNull()
* @AdminAssert\MyCustomValidation
*/
protected $phoneNumber;
在Admin.php中,我写了类似下面的代码
类管理员扩展用户
* @var string
* @ORM\Column(type="text", unique=true)
*/
protected $phoneNumber;
我想删除所有验证限制,但无法将其删除。
答案 0 :(得分:2)
要停用表单验证,您可以将validation_groups
选项设置为false
,如文档中所述here。
在您的情况下,您可以检查类数据(as described here in the doc)是否禁用表单验证,例如:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => function (FormInterface $form) {
$data = $form->getData();
if ($data instanceof Admin) {
return;
}
return array('Default');
},
));
}
Hovenever在您的代码中我看到了管理验证的自定义验证,如果是这样,请考虑使用验证组。
希望这个帮助
答案 1 :(得分:0)
由于Admin类"扩展"或继承自User类,您需要删除User中的约束,如下所示:
* @var string
* @ORM\Column(type="text", unique=true)
*/
protected $phoneNumber;
希望你能得到所有这些吗?