禁用对表单类型步骤Symfony中的自定义字段的断言


Disable assert to custom field in form type step Symfony

我已经在我的实体中配置了断言。我创建了两种表单类型。首先,我有nameurl.在第二个我有description.

/*
*@Assert/NotBlank()
*/
$description;

当我尝试提交第一份表格时,它没有经过验证,因为$description是空白的。

但在第一种形式中,没有描述字段。

您要查找的是验证组(http://symfony.com/doc/current/book/validation.html#validation-groups 和 http://symfony.com/doc/current/book/forms.html#validation-groups)。

基本上,对于您的情况,您需要定义两个验证组,并在表单类型上设置每个验证组。

您的实体

/**
 * @Assert'NotBlank(groups={"FirstForm"})
 */
private $name;
/**
 * @Assert'NotBlank(groups={"FirstForm"})
 */
private $url;
/**
 * @Assert'NotBlank(groups={"SecondForm"})
 */
private $description;

第一窗体类型

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'validation_groups' => ['Default', 'FirstForm']
    ));
}

第二形式类型

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'validation_groups' => ['Default', 'SecondForm']
    ));
}