验证规则的错误提示信息有三种方式可以定义,如下:
如果没有定义任何的验证提示信息,系统会显示默认的错误信息,例如:
$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(); }