我正在尝试在一个字段上设置模型验证,如果另一个字段等于特定值,则只需要检查该字段。
我的第一个字段是查询,它是一个包含许多值的下拉列表,如果选择了这个值,则一个值为“其他”,那么我需要第二个字段“查询其他”不为空。
我的项目模型中有这个设置:
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 版
谢谢