(CakePHP的新手,所以这可能是一个显而易见的事情,但在搜索了几个小时之后我无法找到解决方案 - “或”的模糊性,我想...)< / em>的
我正在尝试修改现有的CakePHP验证规则,该规则使用isUnique
规则,以便它验证满足isUnique
规则或inList
规则的值。
上一段代码:
'isUnique' => array(
'rule' => 'isUnique' ,
'message' => "We're sorry, but this QA number is already being used.",
'last' => TRUE,
),
我的(错误的)代码:
'isUnique' => array(
'rule' => array(
'isUnique' ,
array( 'inList' , array( '111213' , '141516' , '171819' , '202122' ) )
) ,
'message' => "We're sorry, but this number is already being used.",
'last' => TRUE,
),
所以,(这可能很简单),如何将CakePHP验证规则与“OR”逻辑运算符串联起来?我可以看到你可以应用一系列“AND”规则(针对特定问题进行每次测试,如果测试失败,则拒绝该值),但“OR”规则让我摸不着头脑......
任何帮助表示感谢。
答案 0 :(得分:2)
你必须把它变成custom validation rule。在您的模型中添加:
public function isUniqueOrInList(array $data, array $list) {
return in_array(current($data), $list) || $this->isUnique($data);
}
然后声明你的规则:
'rule' => array('isUniqueOrInList', array('111213', '141516', '171819', '202122'))