thinkphp 5.0 Custom Validation Rule Usage
- 2021-08-21 19:47:25
- OfStack
When we use thinkphp 5.0, we often have to customize verification rules, which is different from the previous versions of tp. Today, this site brings everyone 1 to learn how to use verification rules under 5.0.
There are two ways to define $rule (validation rule) in thinkphp5
Mode 1:
$rule = [
// You cannot define an empty validation here Such as 'name' => '', Will lead to the appearance of result Undefined error
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
Mode 2:
$rule = [
'name' => ['require','max'=>25],
'age' => ['number','between'=>'1,120'],
];
If Mode 1 customizes validation rules, you can write
$rule = [
'name' => 'require|max:25|checkName:',
'age' => 'number|between:1,120',
];
protected function checkNmae($value)
{
$value Yes name Value , You can validate here , Such as regular verification
}
If it is Mode 2, it is written as follows
$rule = [
'name' => ['require','max'=>25,'checkName'=>'$rule Parameter '],
'age' => ['number','between'=>'1,120'],
'email' => ['require', 'checkUserEmail'=>'qq.com'],
];
protected function checkName($value, $rule)
{
$vaule Yes name Value ,$rule For the above $rule Parameter
}
protected function checkUserEmail($value,$rule)
{
$res = preg_match('/^\w+([-+.]\w+)*@'.$rule.'$/', $value);
if (!$res) {
return ' Mailbox can only be '.$rule.' Domain name ';
} else {
return true;
}
}
These are the two methods we have given the code, if you have a better method or code can be discussed in the message area below.