【问题标题】:at least one checkbox selected Symfony2至少选择了一个复选框 Symfony2
【发布时间】:2013-02-15 21:41:56
【问题描述】:

我将以下字段添加到我的表单中:

->add('interessi_profilo', 'entity', array( 
                'label' => 'Interessi (Tr)',
                'class' => 'MyProfiloBundle:TipoInteresse',
                'required'  => true,
                'multiple' => true,
                'expanded'  => true,
                'property' => 'tipo',
                'query_builder' => function(\My\ProfiloBundle\Entity\TipoInteresseRepository $er) {
                    return $er->createQueryBuilder('u')
                            ->orderBy('u.id', 'ASC');
                },

我希望仅在至少选中一个复选框时发送表单,并且如果可能的话,有一个告诉用户的工具提示:at least one option must be selected

【问题讨论】:

  • 您必须在 javascript 中执行此操作
  • 仅使用 Javascript?
  • 不,你也必须从后端检查,但你提到了一个工具提示。
  • 没有工具提示但有一个正常的控件??我尝试了 NotBlank,NotNull,Valid...但表单已提交

标签: forms symfony checkbox


【解决方案1】:

尝试将Count constraint 放在保存集合的字段上:

use Symfony\Component\Validator\Constraints\Count;

class Entity 
{
    /**
     * @Count(min = 1, minMessage = "At least one item must be selected")
     */
    private $collection;

    // ...
}

【讨论】:

  • 很好用!我通过validation.yml尝试了这个解决方案,也许我没有写正确的东西..对于工具提示(如required => true)我必须使用Js?
  • 我不确定'required' => true 是否适用于一组复选框。您可能需要为此进行 JS 验证。
猜你喜欢
  • 2014-12-23
  • 2012-11-22
  • 1970-01-01
  • 2011-03-13
  • 2015-11-06
  • 2013-02-21
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多