【问题标题】:What's the best way to validate non-entity fields in a form in Symfony2?在 Symfony2 中验证表单中的非实体字段的最佳方法是什么?
【发布时间】:2012-01-05 21:53:44
【问题描述】:

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

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

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

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

【问题讨论】:

标签: validation symfony


【解决方案1】:

试试:

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

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

【讨论】:

  • 这在 Symfony 2.1 中被弃用了。在 Symfony 2.1 中有没有办法做到这一点?
【解决方案2】:

【讨论】:

  • +1 用于表单模型模式。一旦你得到这个想法,它真的很整洁!
  • +1 用于发布有关表单模型模式的信息,尽管在这种情况下,我认为这种情况可能有点奢侈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2010-09-06
相关资源
最近更新 更多