【问题标题】:Laravel Auth reset password with custom messagesLaravel Auth 使用自定义消息重置密码
【发布时间】:2018-12-17 09:36:53
【问题描述】:

我正在使用 Laravel 身份验证,但我想为密码重置提供自定义错误消息。

使用默认配置,消息如下:

  • 如果用户不填写电子邮件字段,则会显示“validation.required”或“电子邮件字段是必需的”。在 app.php 中使用“en”语言。
  • 如果用户使用用户表中不存在的电子邮件填写电子邮件,则会显示“passwords.user”或“我们找不到具有该电子邮件地址的用户”。在 app.php 中使用“en”语言。
  • 如果用户使用格式无效的电子邮件填写电子邮件,则会显示“validation.email”或“电子邮件必须是有效的电子邮件地址”。在 app.php 中使用“en”语言。

但我想要自定义消息,例如:

$rules = [
    'email' => 'required|email|exists:users.email'
];

$messages = [
    'email.required' => 'The email is required.',
    'email.email' => 'The email needs to have a valid format.',
    'email.exists' => 'The email is not registered in the system.',
];


$this->validate($request, $rules, $messages);

您知道如何为重置密码设置自定义消息吗?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    ResetPasswordController 使用ResetsPasswords trait,它有两个方法(rulesvalidationErrorMessages)处理验证规则及其消息。如果您想更改验证及其消息,请覆盖 ResetPasswordController 中的两个函数。

    在其中定义你的规则

    protected function rules()
    {
        return [
                'token' => 'required',
                'email' => 'required|email',
                'password' => 'required|confirmed|min:6',
        ];
    }
    

    定义您的自定义消息

    protected function validationErrorMessages()
    {
       return [];
    }
    

    你可以在这里查看详情https://laravel.com/api/5.6/Illuminate/Foundation/Auth/ResetsPasswords.html

    【讨论】:

    • 我只是想确认我尝试过这个并且它也适用于 Laravel 7.x,尽管 Laravel 7.x 中有很多变化,用户身份验证转移到 Laravel UI。
    猜你喜欢
    • 2019-07-04
    • 1970-01-01
    • 2017-03-13
    • 2016-04-17
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多