"require|max:25", " />
牛骨文教育服务平台(让学习变的简单)

错误信息

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

使用默认的错误提示信息

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

$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();
}