在Symfony2中验证表单中非实体字段的最佳方法是什么?

时间:2011-11-24 20:02:17

标签: validation symfony

正如标题所示,我的表单中有一个选择字段(无线电html输入),在允许用户继续操作之前必须有一个选择。

我尝试将验证添加到捆绑包中的validation.yml文件中(抛出错误,说明该字段不是有效的实体字段),我还尝试直接在表单代码中添加验证器,但收到异常,因为验证器类没有实现FormValidatorInterface(代码如下)。

$builder->addValidator(new  CallbackValidator(function(FormInterface $form) {
     if(!$form['has_subalbums']->getData())
     {
         $form->addError(new FormError('Please indicate sub albums'));
     }
}));

验证非实体字段的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

尝试:

  

使用Symfony \ Component \ Form作为表单; [...]

 $builder->addValidator(new Form\CallbackValidator(function($form) {
 if(!$form['has_subalbums']->getData())
 {
     $form->addError(new Form\FormError('Please indicate sub albums'));
 }
 }));

答案 1 :(得分:2)