在表单类型步骤 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 and 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;

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']
    ));
}