验证器中提到使用$message参数来定义验证的错误消息,此节详细介绍错误消息的定义

# message变量

错误消息$message变量支持填入

  • :attribute 表示字段名称
  • {:field} 表示字段内容
  • @{field} 表示字段的自定义名称

说明

上述文本在自定义规则中均支持使用

# :attribute

:attribute 代表为当前触发错误的customAttributes变量中的字段名称








 







class Test extends Validate
{
    protected $rule = [
        'user' => 'required'
    ];
    
    protected $message = [
        'user.required' => '请填写:attribute'
    ];
    
    protected $customAttributes = [
        'user' => '账号'
    ];
}

触发后,提示的消息为请填写账号

# {:field}

{:field}中间的field为当前验证值的字段,如果指定字段不存在,则为空文本,支持获取数组,如info.name,代表获取info数组中的name参数,可无限下层








 



class Test extends Validate
{
    protected $rule = [
        'name' => 'chs'
    ];
    
    protected $message = [
        'name.chs' => '你填写的名字{:name}不是中国名字'
    ];
}

输入数据['name' => 'Rasmus Lerdorf'],提示:你填写的名字Rasmus Lerdorf不是中国名字

# @{field}

@{field}表示使用field的自定义名称














 



class User extends Validate
{
    protected $rule = [
        'pass'   => 'required',
        'repass' => 'required|same:pass'
    ];

    protected $customAttributes = [
        'pass'   => '密码',
        'repass' => '确认密码'
    ];

    protected $message = [
        'repass.same' => ':attribute和@{pass}不一致'
    ];
}

最后触发的错误消息为:确认密码和密码不一致

# customAttributes变量

当我们定义了大量的验证字段和规则时,如果一个一个对应的编写错误消息,需要耗费大量的时间成本,这个时候,我们可以使用$customAttributes变量定义字段的名称。

当错误触发时,会自动替换默认错误消息中的:attribute文本







 
 
 


class User extends Validate
{
    protected $rule = [
        'id' => 'required|numeric',
    ];

    protected $customAttributes = [
        'id' => '字段ID',
    ];
}

当错误触发时,会提示字段ID 不可为空,字段ID 必须为数字 customAttributes变量中也支持{:field},如:


 


protected $customAttributes = [
    'id' => '字段ID:{:id}',
];

如果传入idhello

此时触发后会提示字段ID:hello 必须为数字