我使用表单构建器创建并呈现我的表单,但似乎验证已禁用或工作不正常。我将验证规则保存在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
我不确切知道应该使用哪个版本,但这两个版本都不起作用。
答案 0 :(得分:1)
我认为this主题会对您有所帮助。
您必须检查config.yml中的验证器配置是否定义如下:
framework:
validation: { enabled: true, enable_annotations: false }