List Cakephp正在验证我的用户是否至少选中了一个选项

List Cakephp正在验证我的用户是否至少选中了一个选项,list,validation,checkbox,cakephp-2.0,List,Validation,Checkbox,Cakephp 2.0,验证用户是否从复选框列表中至少选中了一个选项时出现问题 以下是我尝试过的: 我的观点是这样的: echo $this->Form->input('market_segment_targeted', array( 'multiple' => 'checkbox', 'label'=>array('text' => 'Market segment targeted', 'class'=>'w120'), 'options' => array

验证用户是否从复选框列表中至少选中了一个选项时出现问题

以下是我尝试过的: 我的观点是这样的:

echo $this->Form->input('market_segment_targeted', array(
   'multiple' => 'checkbox',
   'label'=>array('text' => 'Market segment targeted', 'class'=>'w120'),
   'options' => array(
                'Home users' => 'Home users',
                'SOHO' => 'SOHO',
                'SMB' => 'SMB',
                'Enterprise' => 'Enterprise'
    ),
));
在我的控制器中,我添加了以下代码片段:

    $validate_on_fly = array(
                         'market_segment_targeted' => array(
                        'notEmpty' => array(
    'rule' => array('multiple', array('min' => 1)),
                            'required' => true,
                            'message'  => 'Please select at least one!'
                        ))
                        )));    
    $this->Partner->validate = Set::merge(
                          $this->Partner->validate,
                          $validate_on_fly
                          );
知道我做错了什么吗


谢谢

在CakePHP中,您可以使用模型验证复选框。下面是一个简单的例子

您的表单可以如下所示:

$this->Form->create('User');
$this->Form->input('User.agree', array('type'=>'checkbox', 'hiddenField'=>false, 'value'=>'0'));
$this->Form->submit('Save'):
$this->Form->end();
然后在您的模型中的public$validate下,使用:

'agree'=>array(
  'Not empty'=>array(
    'rule'=>array('comparison', '!=', 0),
    'required'=>true,
    'message'=>'You must agree to the ToS'
    )
  )

有什么问题吗?该模型允许您提交无效数据,还是阻止您提交有效数据?我可以提交此表单而无需选中任何选项。您的代码适用于我。您确定在保存数据时没有手动禁用验证,或者在保存数据后没有在控制器中修改验证规则吗?放置调试($this->validate);在Partner.php中的beforeValidate()中检查是否进行了验证。顺便说一句,最好是管理模型中的所有验证…我知道最好是管理模型中的所有验证,但该字段不包含在模型中。。我并没有以任何方式修改我的验证:(调试$this->validate时看起来都不错,但是出于某种原因,我可以提交表单而不检查任何选项。如果定义了其中一个,您可以显示所有在哪里进行验证的函数吗?如果定义了其中一个,您的合作伙伴模型的$validate或beforeValidate()也可能会吗?