【问题标题】:Cakephp validating if my user checked at least one optionCakephp 验证我的用户是否检查了至少一个选项
【发布时间】:2013-10-02 09:04:11
【问题描述】:

我在验证我的用户是否从复选框列表中至少选中了一个选项时遇到问题。

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

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'
    ),
));

在我的控制器中,我添加了这段 sn-p 代码:

    $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
                          );

任何想法我做错了什么?

谢谢

【问题讨论】:

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

标签: list validation checkbox cakephp-2.0


【解决方案1】:

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

您的表单可能如下所示:

$this->Form->create('User');
$this->Form->input('User.agree', array('type'=>'checkbox', 'hiddenField'=>false, 'value'=>'0'));
$this->Form->submit('Save'):
$this->Form->end();

然后在你的 Model public $validate 下,使用:

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

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2011-07-05
    • 2012-04-14
    相关资源
    最近更新 更多