验证规则的错误提示信息有三种方式可以定义,如下:

使用默认的错误提示信息

如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:

  1. $rule = [
  2. 'name' => 'require|max:25',
  3. 'age' => 'number|between:1,120',
  4. 'email' => 'email',
  5. ];
  6. $data = [
  7. 'name' => 'thinkphp',
  8. 'age' => 121,
  9. 'email' => 'thinkphp@qq.com',
  10. ];
  11. $validate = new Validate($rule);
  12. $result = $validate->check($data);
  13. if(!$result){
  14. echo $validate->getError();
  15. }

会输出 age只能在 1 - 120 之间

可以给age字段设置中文名,例如:

  1. $rule = [
  2. 'name' => 'require|max:25',
  3. 'age|年龄' => 'number|between:1,120',
  4. 'email' => 'email',
  5. ];
  6. $data = [
  7. 'name' => 'thinkphp',
  8. 'age' => 121,
  9. 'email' => 'thinkphp@qq.com',
  10. ];
  11. $validate = new Validate($rule);
  12. $result = $validate->check($data);
  13. if(!$result){
  14. echo $validate->getError();
  15. }

会输出 年龄只能在 1 - 120 之间

验证规则和提示信息分开定义

如果要输出自定义的错误信息,有两种方式可以设置。下面的一种方式是验证规则和提示信息分开定义:

  1. $rule = [
  2. 'name' => 'require|max:25',
  3. 'age' => 'number|between:1,120',
  4. 'email' => 'email',
  5. ];
  6. $msg = [
  7. 'name.require' => '名称必须',
  8. 'name.max' => '名称最多不能超过25个字符',
  9. 'age.number' => '年龄必须是数字',
  10. 'age.between' => '年龄必须在1~120之间',
  11. 'email' => '邮箱格式错误',
  12. ];
  13. $data = [
  14. 'name' => 'thinkphp',
  15. 'age' => 121,
  16. 'email' => 'thinkphp@qq.com',
  17. ];
  18. $validate = new Validate($rule,$msg);
  19. $result = $validate->check($data);
  20. if(!$result){
  21. echo $validate->getError();
  22. }

会输出 年龄必须在1~120之间

验证规则和提示信息一起定义

可以支持验证规则和错误信息一起定义的方式,如下:

  1. $rule = [
  2. ['name','require|max:25','名称必须|名称最多不能超过25个字符'],
  3. ['age','number|between:1,120','年龄必须是数字|年龄必须在1~120之间'],
  4. ['email','email','邮箱格式错误']
  5. ];
  6. $data = [
  7. 'name' => 'thinkphp',
  8. 'age' => 121,
  9. 'email' => 'thinkphp@qq.com',
  10. ];
  11. $validate = new Validate($rule);
  12. $result = $validate->check($data);
  13. if(!$result){
  14. echo $validate->getError();
  15. }

使用多语言

如果需要使用多语言验证信息,可以在定义验证信息的时候使用 {%语言变量} 替代 原来的验证错误信息,例如:

  1. $rule = [
  2. 'name' => 'require|max:25',
  3. 'age' => 'number|between:1,120',
  4. 'email' => 'email',
  5. ];
  6. $msg = [
  7. 'name.require' => '{%name_require}',
  8. 'name.max' => '{%name_max}',
  9. 'age.number' => '{%age_number}',
  10. 'age.between' => '{%age_between}',
  11. 'email' => '{%email_error}',
  12. ];
  13. $data = [
  14. 'name' => 'thinkphp',
  15. 'age' => 121,
  16. 'email' => 'thinkphp@qq.com',
  17. ];
  18. $validate = new Validate($rule,$msg);
  19. $result = $validate->check($data);
  20. if(!$result){
  21. echo $validate->getError();
  22. }