加载中...

错误信息


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

使用默认的错误提示信息

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

  1. namespace app\index\validate;
  2. use think\Validate;
  3. class User extends Validate
  4. {
  5. protected $rule = [
  6. 'name' => 'require|max:25',
  7. 'age' => 'number|between:1,120',
  8. 'email' => 'email',
  9. ];
  10. }
  1. $data = [
  2. 'name' => 'thinkphp',
  3. 'age' => 121,
  4. 'email' => 'thinkphp@qq.com',
  5. ];
  6. $validate = new \app\index\validate\User;
  7. $result = $validate->check($data);
  8. if(!$result){
  9. echo $validate->getError();
  10. }

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

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

  1. namespace app\index\validate;
  2. use think\Validate;
  3. class User extends Validate
  4. {
  5. protected $rule = [
  6. 'name' => 'require|max:25',
  7. 'age|年龄' => 'number|between:1,120',
  8. 'email' => 'email',
  9. ];
  10. }

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

单独定义提示信息

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

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

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

使用多语言

5.1的验证信息提示支持多语言功能,你只需要给相关错误提示信息定义语言包,例如:

  1. namespace app\index\validate;
  2. use think\Validate;
  3. class User extends Validate
  4. {
  5. protected $rule = [
  6. 'name' => 'require|max:25',
  7. 'age' => 'number|between:1,120',
  8. 'email' => 'email',
  9. ];
  10. protected $message = [
  11. 'name.require' => 'name_require',
  12. 'name.max' => 'name_max',
  13. 'age.number' => 'age_number',
  14. 'age.between' => 'age_between',
  15. 'email' => 'email_error',
  16. ];
  17. }

你可以在语言包文件中添加下列定义:

  1. 'name_require ' => '姓名必须',
  2. 'name_max' => '姓名最大长度不超过25个字符',
  3. 'age_between' => '年龄必须在1~120之间',
  4. 'age_number' => '年龄必须是数字',
  5. 'email_error' => '邮箱格式错误',

系统内置的验证错误提示均支持多语言(参考框架目录下的lang/zh-cn.php语言定义文件)。


还没有评论.