数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

错误信息的定义通常有三种方式,
第一种,可以通过\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值忘记输入啦的错误信息。

SW-X

企业级 - 高性能 PHP 框架

最后更新:2年前 . 作者-小黄牛

本篇目录