Forms 在Symfony2中一次验证多个复选框的正确方法是什么(需要一个)?

Forms 在Symfony2中一次验证多个复选框的正确方法是什么(需要一个)?,forms,symfony,checkbox,required,Forms,Symfony,Checkbox,Required,假设我们有一个Symfony2表单,包含3个复选框a、B、C,我们希望用户至少勾选一个复选框以验证表单,因此任何组合[a]、[B]、[C]、[a、B]、[a、C]、[B、C]、[a、B、C]都将返回true,而选择[]都不会返回false 在条令对象上使用Symfony验证器实现这一点的正确方法是什么 编辑: 每个复选框都使用doctor@ORM\Columntype=boolean映射到数据库中它自己的列是否有按钮控件?如果是,在单击事件上,检查是否进行了选择。如果是,则返回true,否则返回

假设我们有一个Symfony2表单,包含3个复选框a、B、C,我们希望用户至少勾选一个复选框以验证表单,因此任何组合[a]、[B]、[C]、[a、B]、[a、C]、[B、C]、[a、B、C]都将返回true,而选择[]都不会返回false

在条令对象上使用Symfony验证器实现这一点的正确方法是什么

编辑:
每个复选框都使用doctor@ORM\Columntype=boolean映射到数据库中它自己的列

是否有按钮控件?如果是,在单击事件上,检查是否进行了选择。如果是,则返回true,否则返回false

有按钮控制吗?如果是,在单击事件上,检查是否进行了选择。如果是,则返回true,否则返回false

如果正确使用选项列表的选择字段类型,则可以使用ChoiceValidator:

从:

如果multiple选项为true,则可以使用min选项强制选择至少XX个值。例如,如果min为3,但输入数组仅包含2个有效项,则验证将失败


如果正确使用选项列表的选择字段类型,则可以使用ChoiceValidator:

从:

如果multiple选项为true,则可以使用min选项强制选择至少XX个值。例如,如果min为3,但输入数组仅包含2个有效项,则验证将失败

问题解决了。 基于 在我的实体类中,我添加了:

class Message
{

  // ...

  // check if user selected at least one network to publish the message
  public function isNetworkSelected(ExecutionContext $context)
  {
    if (!$this->network_twitter && !$this->network_facebook && !$this->network_googleplus)
    {
      $context->addViolationAtSubPath('network_facebook', 'Please select at least one network', array(), null);
    }
  }

  // ...

}
在validation.yml中:

问题解决了。 基于 在我的实体类中,我添加了:

class Message
{

  // ...

  // check if user selected at least one network to publish the message
  public function isNetworkSelected(ExecutionContext $context)
  {
    if (!$this->network_twitter && !$this->network_facebook && !$this->network_googleplus)
    {
      $context->addViolationAtSubPath('network_facebook', 'Please select at least one network', array(), null);
    }
  }

  // ...

}
在validation.yml中:


哦,对不起,也许我的问题不够清楚,我已经编辑过了。我的意思是使用Symfony2框架进行验证,而不是Javascript。哦,对不起,也许我的问题不够清楚,我已经编辑过了。我的意思是使用Symfony2框架而不是Javascript进行验证。很抱歉没有指定:每个复选框都映射到数据库中它自己的字段,只是更新了问题。另外,我想我找到了解决方案,很快就会发布。很抱歉没有指定:每个复选框都映射到数据库中它自己的字段,只是更新了问题。另外,我想我找到了解决方案,很快就会发布。
MY\MessageBundle\Entity\Message
    constraints:
        - Callback:
            methods:   [isNetworkSelected]