删除子类属性中的所有验证约束

时间:2016-06-11 02:20:05

标签: symfony

我在清除从超类扩展的所有验证约束时遇到问题。以下是我的代码

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;

我想删除所有验证限制,但无法将其删除。

2 个答案:

答案 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;

希望你能得到所有这些吗?