错误信息的定义通常有三种方式,
第一种,可以通过\x\Validate()->message()
方法临时修改错误信息,
第二种,自定义Validate
规则类,通过message
属性定义错误信息。
第三种,在不定义message
的情况下,会默认使用框架内置的错误信息内容。
提示:所有自定义的Validate
规则类,都需要继承\x\Validate
基类。
自定义规则类,官方建议,统一存放在/box/validate/
目录下:
namespace box\validate;
use x\Validate;
class User extends Validate
{
// 定义字段对应的规则
protected $rule = [
'id' => 'require|int',
'name' => 'require|username|between:1,120',
'age' => 'between:1,100',
'email' => 'email',
'info.nick' => 'alphaNum|min:10|max:20',
];
// 自定义错误值声明
protected $message = [
'id.require' => '{id}忘记输入啦',
'name.username' => '{name}不规范',
'info.nick.min' => '{:preset}不能小于{0}',
];
}
这样就可以直接使用:
$ValiUser = new \box\validate\User();
// $data为验证数据集
if ($ValiUser->fails($data)) {
// 打印失败原因
var_dump($Validate->errors());
}
如果id
值验证不通过,errors()
里就可以得到id忘记输入啦
的错误信息。
关于自定义错误值声明中占位符,可以参考 验证器说明 一节。
namespace box\validate;
use x\Validate;
class User extends Validate
{
// 定义请求对应的规则
protected $header_rule = [
'request' => 'get|ajax|jwt:head,token'
];
// 自定义错误值声明
protected $message = [
'request.jwt' => 'JWT解析失败',
];
}
调用方法与上面的 请求参数 章节一致。
用于代替字段名,替换到错误信息中:
namespace box\validate;
use x\Validate;
class User extends Validate
{
// 定义字段对应的规则
protected $rule = [
'id' => 'require|int',
'name' => 'require|username|between:1,120',
'age' => 'between:1,100',
'email' => 'email',
'info.nick' => 'alphaNum|min:10|max:20',
];
// 自定义错误值声明
protected $message = [
'id.require' => '{id}忘记输入啦',
'name.username' => '{name}不规范',
'info.nick.min' => '{:preset}不能小于{0}',
];
// 可以设置message时的字段别名
protected $alias = [
'id' => 'ID值',
'name' => '用户名',
'info.nick' => '会员昵称',
];
}
这样就可以直接使用:
$ValiUser = new \box\validate\User();
// $data为验证数据集
if ($ValiUser->fails($data)) {
// 打印失败原因
var_dump($Validate->errors());
}
如果id
值验证不通过,errors()
里就可以得到ID值忘记输入啦
的错误信息。