【发布时间】:2013-08-13 08:42:16
【问题描述】:
我正在尝试在一个字段上设置模型验证,仅在另一个字段等于特定值时才需要检查。
我的第一个字段是查询,它是一个包含许多值的下拉菜单,如果选择了一个值,那么我需要第二个字段“query_other”不为空。
我的物品模型中有这个设置:
public $validate = array(
'query' => array(
'notempty' => array(
'rule' => array('notempty'),
'message' => 'THE QUERY IS REQUIRED',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'query_other' => array(
'notempty' => array(
'rule' => array('if_query_other', 'query'),
'message' => 'REASON IS REQUIRED',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
然后我就有了上面调用的这个自定义函数。
function if_query_other(&$data, $check, $query_field) {
if($this->data[$this->name][$query_field] == 'Other' && $check == NULL)
{
return false;
}
else
{
return true;
}
}
它不起作用,我目前收到此错误:Item::if_query_other() 的参数 1 应为参考,给定值
CakePHP 2.3.6 版
谢谢
【问题讨论】:
-
验证函数在哪里,在模型本身中,还是在行为中?此外,您应该始终提及您的确切 CakePHP 版本!
-
谢谢,验证在项目模型中,我使用的是 cakePHp 版本 2.3.6。
标签: validation cakephp model