如何为表单生成器(Symfony2)中创建的表单启用验证?

时间:2015-01-26 00:03:29

标签: php forms validation symfony

我使用表单构建器创建并呈现我的表单,但似乎验证已禁用或工作不正常。我将验证规则保存在validation.yml文件中。方法$form->isValid()始终返回true,而$form->getErrorsAsString()不会显示任何错误(仅[FieldName1]: No errors, [FieldName2]: No errors ... etc)。

我以这种方式创建表单:

$form = $this->createForm( new CategoryType(), new Category() );

然后我把它送到树枝上。

可能是什么原因?如何启用验证?

----- 更新 -------------------------

我以这种方式创建一个表单:

public function indexAction()
{
    return $this->render('MyBundle:MyView:index.html.twig', array(
        "form" => $this->createForm( new CategoryType(), new Category() )->createView()
    ));
}

CategoryType非常简单:

class CategoryType extends AbstractType {
    public function buildForm(FormBuilderInterface $builder, array $options) {

       $builder ->add('name', 'text')
                ->add('categoryId', 'entity', array(
                    'class' => 'MyBundle:Category',
                    'property' => 'name',
                ));
    }

    public function getName() {
        return 'my_form_name';
    }
}

当然还有validation.yml:

MyBundle/Form/Type/CategoryType:
    properties:
    - name:
        - NotBlank: ~
        - Length:
            min: 3
            max: 30

MyBundle/Entity/Category:
    properties:
    - name:
        - NotBlank: ~
        - Length:
            min: 3
            max: 30

我不确切知道应该使用哪个版本,但这两个版本都不起作用。

1 个答案:

答案 0 :(得分:1)

我认为this主题会对您有所帮助。

您必须检查config.yml中的验证器配置是否定义如下:

framework:
    validation: { enabled: true, enable_annotations: false }