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

Jam*_*all 1 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'));
     }
}));
Run Code Online (Sandbox Code Playgroud)

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

web*_*a2l 5

尝试:

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

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

  • 这在Symfony 2.1中已被弃用.在Symfony 2.1中有没有办法做到这一点? (5认同)