Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation CakePHP验证-isUnique或inList_Validation_Cakephp - Fatal编程技术网

Validation CakePHP验证-isUnique或inList

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

(CakePHP新手,所以这可能是一件显而易见的事情,但我在搜索了几个小时后找不到解决方案——我想“或”的模糊性…)

我正在尝试修改现有的CakePHP验证规则,该规则使用
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'))