为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel的Validator验证未通过时,错误信息中的 `:attribute` 如何替换为中文?

Laravel的Validator验证未通过时,错误信息中的 `:attribute` 如何替换为中文?

PHP
鸿蒙传说 2019-03-06 02:20:25
目前我是在 lang 文件夹里,定义了 验证器 语言文件的中文版本,但其中还存在像是 :attribute 这种字段。 所以最后的错误提示就变成了: :attribute 这种字段如何变成中文呢? PS: 我不想针对性的自定义错误信息,这个应用有一百多个错误验证,我怕最后我会写疯掉。
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

1、(推荐,我平常就这么用)如果你是用FormRequest的话,可以重写如下的方法:

public function attributes()
{
    return [
        // 类似 'username' => '用户名'
        'username' => trans('label_fields.username'),
    ];
}

2、(我未测试过,为了回答扒文档临时看到的)如果是在controller中的validator,则可以这样为input属性名定义一个“漂亮的名字”:

$niceNames = array(
    'username' => '用户名'
    // 或单独将它定义,例如在lang下
    // 'username' => trans('label_fields.username'),
);

$validator = Validator::make(Input::all(), $rules);
$validator->setAttributeNames($niceNames);
// ...

希望能帮到你,兄弟,如有错误请指出。

查看完整回答
反对 回复 2019-03-18
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

很简单啊,validate,第一个参数验证数据,第二个参数验证规则,第三个参数自定义显示错误,第四个参数,自定义字段名称(就是你的答案)
$this->validate($request, [
                    'info' => 'required',
                    'data' => 'required',
                ], [],
                    [
                        'info' => '输入信息',
                        'data' => '数据',
                    ]
                );
                
查看完整回答
反对 回复 2019-03-18
?
繁星coding

TA贡献1797条经验 获得超4个赞

可以直接在validation.php这个文件中写的.比如:

return [
    'required'             => ':attribute 不能为空。',
    
    'attributes' => [
        'username' => '用户名',
    ]
];

通过这种方式就可以将:attribute替换成相应的中文了;

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 889 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信