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.


Related articles: