Validation CakePHP验证-isUnique或inList
(CakePHP新手,所以这可能是一件显而易见的事情,但我在搜索了几个小时后找不到解决方案——我想“或”的模糊性…) 我正在尝试修改现有的CakePHP验证规则,该规则使用Validation CakePHP验证-isUnique或inList,validation,cakephp,Validation,Cakephp,(CakePHP新手,所以这可能是一件显而易见的事情,但我在搜索了几个小时后找不到解决方案——我想“或”的模糊性…) 我正在尝试修改现有的CakePHP验证规则,该规则使用isUnique规则,以便验证满足isUnique规则或inList规则的值 前一代码: 'isUnique' => array( 'rule' => 'isUnique' , 'message' => "We're sorry, but this QA number is already being
isUnique
规则,以便验证满足isUnique
规则或inList
规则的值
前一代码:
'isUnique' => array(
'rule' => 'isUnique' ,
'message' => "We're sorry, but this QA number is already being used.",
'last' => TRUE,
),
我的(故障)代码:
那么,(尽管这可能很简单),如何将CakePHP验证规则与“或”逻辑运算符组合在一起?我可以看到,您可以应用一系列“和”规则(针对特定问题进行每个测试,如果测试失败,则拒绝该值),但是“或”规则让我挠头
非常感谢您的帮助。您必须将此作为一种奖励。将此项添加到您的模型中:
public function isUniqueOrInList(array $data, array $list) {
return in_array(current($data), $list) || $this->isUnique($data);
}
然后像这样声明您的规则:
'rule' => array('isUniqueOrInList', array('111213', '141516', '171819', '202122'))
你是个圣人!感谢您的帮助-我第一次尝试CakePHP,所以我不知道。出于性能原因,我将切换这两个条件。后者不需要DB调用您可以尝试在日期验证中使用'allowEmpty':'dateField'=>array('rule'=>array('date','dmy'),'message'=>'输入有效日期','allowEmpty'=>true)
'rule' => array('isUniqueOrInList', array('111213', '141516', '171819', '202122'))