嗨,我正在为我的项目使用cakephp框架。在我的表单上,我点击这个另外两个文本框的复选框显示。 通过使用cakephp验证方法我验证表单数据,但我希望当没有选中复选框时,它避免验证该文本框。它仅在选中复选框时进行检查。 所以PLZ帮助我。
提前致谢
答案 0 :(得分:1)
您可以在验证服务之前使用您的模型,并为此模型添加额外的验证标准。
例如:
function beforeValidate($options = array())
{
if(!empty($this->data['Model']['fieldOne']))
$this->validate['fieldTwo'] = array(/*normal validation rules*/);
return true; // Needed or validation fails
}
答案 1 :(得分:0)
您可以使用custom validation methods:
var $validate = array(
'checkbox1' => 'checkboxRule'
);
// If checkbox1 is checked, requires checkbox2 to be checked as well
function checkboxRule() {
if (!empty($this->data[$this->alias]['checkbox1'])) {
return !empty($this->data[$this->alias]['checkbox2']);
}
return true;
}
您还可以通过在自定义方法中调用checkbox2
来同时使$this->invalidate('checkbox2')
等其他字段无效。
答案 2 :(得分:0)
此外,您可以在控制器中取消设置验证,如下所示:
unset($this->Model->validate);