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