在cakephp3自定义验证规则中:
如何使用全局函数验证方法。
$validator->add('title', 'custom', [
'rule' => 'validate_title'
]);
请以前做过的人吗?请给我一些示例程序。
http://book.cakephp.org/3.0/en/core-libraries/validation.html#custom-validation-rules
我尝试了以上但它不起作用..?
答案 0 :(得分:13)
这是使用全局函数概念进行验证的示例:
namespace App\Model\Table;
use Cake\ORM\Table;
use Cake\Validation\Validator;
public function validationDefault(Validator $validator) {
$validator->add('title',[
'notEmptyCheck'=>[
'rule'=>'notEmptyCheck',
'provider'=>'table',
'message'=>'Please enter the title'
]
]);
return $validator;
}
public function notEmptyCheck($value,$context){
if(empty($context['data']['title'])) {
return false;
} else {
return true;
}
}
答案 1 :(得分:5)
rev1
使用$ context变量将当前值与其他字段(如$ value> = $ context ['data'] ['another_field_name'];
进行混淆答案 2 :(得分:-3)
这是一个验证示例。
在你的表格中。
public function validationDefault(Validator $validator)
{
$validator = new Validator();
$validator
->notEmpty('username', 'A username is required')
->add('username', [
'emailValid' => [
'rule' => ['email', true],
'message' => 'You must provide a valid email'
],
'emailUnique' => [
'message' => 'The email you provided is already taken. Please provide another one.',
'rule' => 'validateUnique',
'provider' => 'table'
]
]);
return $validator;
}