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

时间:2016-03-18 17:18:57

标签: php symfony symfony-forms assert

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

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

当我尝试提交第一个表单时,它未经过验证,因为$description为空。

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

1 个答案:

答案 0 :(得分:3)

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

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

<强> YourEntity

/**
 * @Assert\NotBlank(groups={"FirstForm"})
 */
private $name;

/**
 * @Assert\NotBlank(groups={"FirstForm"})
 */
private $url;

/**
 * @Assert\NotBlank(groups={"SecondForm"})
 */
private $description;

<强> FirstFormType

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

<强> SecondFormType

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