Daw*_*jee 1 php validation cakephp comparison-operators cakephp-3.0
我正在尝试使用比较规则,但似乎缺少某些东西或者做得不对.基本上我需要验证来检查small_size的值是否小于或等于big_size.
但这不起作用,我目前正在收到错误,无论大小.
在表中:
...
$validator
->add('small_size', 'valid', ['rule' => 'numeric'])
->requirePresence('small_size', 'create')
->notEmpty('small_size')
->add('small_size', 'comparison', [
'rule' => ['comparison', 'big_size', '<='],
'message' => 'Small size cannot be more than the Big size.'
]);
return $validator;
}
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->existsIn(['Entity_id'], 'Entity'));
return $rules;
}
Run Code Online (Sandbox Code Playgroud)
对此的一些帮助将非常感激.
您不能使用内置comparison规则来比较两个字段,您需要使用自定义规则:
$validator->add('small_size', 'comparison', [
'rule' => function ($value, $context) {
return intval($value) <= intval($context['data']['big_size']) ;
},
'message' => 'Small size cannot be bigger than Big size.'
]);
Run Code Online (Sandbox Code Playgroud)