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

发布于 2022-09-06 03:13:21 字数 356 浏览 19 评论 0

目前我是在 lang 文件夹里,定义了 验证器 语言文件的中文版本,但其中还存在像是 :attribute 这种字段。

所以最后的错误提示就变成了:

错误提示:name 不能为空。

:attribute 这种字段如何变成中文呢?

PS: 我不想针对性的自定义错误信息,这个应用有一百多个错误验证,我怕最后我会写疯掉。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不知所踪 2022-09-13 03:13:21

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);
// ...

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

一梦浮鱼 2022-09-13 03:13:21

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

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

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

单身情人 2022-09-13 03:13:21
很简单啊,validate,第一个参数验证数据,第二个参数验证规则,第三个参数自定义显示错误,第四个参数,自定义字段名称(就是你的答案)
$this->validate($request, [
                    'info' => 'required',
                    'data' => 'required',
                ], [],
                    [
                        'info' => '输入信息',
                        'data' => '数据',
                    ]
                );
                
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文