错误信息

最后更新于:2022-04-01 21:25:06

验证规则的错误提示信息有三种方式可以定义,如下: ## 使用默认的错误提示信息 如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如: ~~~ $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $data = [ 'name' => 'thinkphp', 'age' => 121, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule); $result = $validate->check($data); if(!$result){ echo $validate->getError(); } ~~~ 会输出 `age只能在 1 - 120 之间`。 可以给age字段设置中文名,例如: ~~~ $rule = [ 'name' => 'require|max:25', 'age|年龄' => 'number|between:1,120', 'email' => 'email', ]; $data = [ 'name' => 'thinkphp', 'age' => 121, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule); $result = $validate->check($data); if(!$result){ echo $validate->getError(); } ~~~ 会输出 `年龄只能在 1 - 120 之间`。 ## 验证规则和提示信息分开定义 如果要输出自定义的错误信息,有两种方式可以设置。下面的一种方式是验证规则和提示信息分开定义: ~~~ $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $msg = [ 'name.require' => '名称必须', 'name.max' => '名称最多不能超过25个字符', 'age.number' => '年龄必须是数字', 'age.between' => '年龄必须在1~120之间', 'email' => '邮箱格式错误', ]; $data = [ 'name' => 'thinkphp', 'age' => 121, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule,$msg); $result = $validate->check($data); if(!$result){ echo $validate->getError(); } ~~~ 会输出 `年龄必须在1~120之间`。 ## 验证规则和提示信息一起定义 可以支持验证规则和错误信息一起定义的方式,如下: ~~~ $rule = [ ['name','require|max:25','名称必须|名称最多不能超过25个字符'], ['age','number|between:1,120','年龄必须是数字|年龄必须在1~120之间'], ['email','email','邮箱格式错误'] ]; $data = [ 'name' => 'thinkphp', 'age' => 121, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule); $result = $validate->check($data); if(!$result){ echo $validate->getError(); } ~~~ ## 使用多语言 如果需要使用多语言验证信息,可以在定义验证信息的时候使用 **{%语言变量}** 替代 原来的验证错误信息,例如: ~~~ $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $msg = [ 'name.require' => '{%name_require}', 'name.max' => '{%name_max}', 'age.number' => '{%age_number}', 'age.between' => '{%age_between}', 'email' => '{%email_error}', ]; $data = [ 'name' => 'thinkphp', 'age' => 121, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule,$msg); $result = $validate->check($data); if(!$result){ echo $validate->getError(); } ~~~
';