【问题标题】:How can I add a success flash message for the password reset functionality of Laravel?如何为 Laravel 的密码重置功能添加成功的 Flash 消息?
【发布时间】:2016-01-22 01:42:15
【问题描述】:

我正在使用 Laravel 5.1 和内置的身份验证功能。然而,在测试它时,我注意到当用户填写忘记密码的表单时没有“成功”消息,页面只是刷新,尽管表单确实有效。

如何为忘记密码工具设置成功变量?我在任何地方都找不到控制它的方法。

谢谢

【问题讨论】:

    标签: php laravel laravel-5.1


    【解决方案1】:

    如果你使用 Laravel 的内置密码重置功能,那么它确实会显示成功消息。你可以在这里看到它:https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/ResetsPasswords.php#L95

    你只需要在你的视图中监听它并在它存在时显示它:

    @if (session('status'))
       <p class="alert alert-success">{{ session('status') }}</p>
    @endif
    

    这将显示默认消息,即:

    您的密码已重置!

    如果您想更改此消息,只需更改 resources/lang/en/passwords.php 中的相关行。

    【讨论】:

    • 完美,谢谢。当他们为每个必需的视图指定完整代码时,不确定为什么从文档中省略了这一点
    • 我猜是因为密码重置器没有标准路由重定向到它是用户可配置的,所以这取决于用户他们使用哪个视图。
    • 上面代码中第一个('status')后面少了一个括号,以防有人像我一样错过它:)应该是:@if(session('status'))
    • @NickF 感谢您的提醒!现已修改。
    【解决方案2】:

    只需将此函数粘贴到您的 ResetPasswordController

    protected function sendResetResponse(Request $request, $response)
    {
        return redirect($this->redirectPath())
            ->with('success', 'Password changed successfully.');
    }
    

    要在您的刀片视图中获取消息,请使用此代码

     @if (session('status'))
         <div class="alert alert-success" role="alert">
             {{ session('status') }}
         </div>
     @endif
    

    【讨论】:

    • 这与已接受的答案相同,在发布 6 年后获得了 13 次投票...
    猜你喜欢
    • 2019-12-29
    • 1970-01-01
    • 2019-12-25
    • 2021-08-17
    • 2019-06-04
    • 2021-09-23
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    相关资源
    最近更新 更多