Laravel 5.4 密码重置

Posted

技术标签:

【中文标题】Laravel 5.4 密码重置【英文标题】:Laravel 5.4 Password Reset 【发布时间】:2017-08-04 16:07:39 【问题描述】:

我有一个 Laravel 5.4 应用程序,并且我的管理区域中有一个视图,可以让我查看所有用户。

我想创建一个函数,允许我单击后端的按钮,自动发送默认 Laravel 密码重置功能。

在我看来,我有以下几点:

<table class="table table-hover">
                        <thead>
                            <th>#</th>
                            <th>Company</th>
                            <th>Name</th>
                            <th>Email Address</th>
                            <th>Action</th>
                        </thead>
                        <tbody>
                            @foreach(\App\User::all() as $c)
                                <tr>
                                    <td> $c->id </td>
                                    <td> $c->company->company_name </td>
                                    <td> $c->name </td>
                                    <td> $c->email </td>
                                    <td><a href="/admin/user/ $c->id /password/reset">Password Reset</a></td>
                                </tr>
                            @endforeach
                        </tbody>
                    </table>

在链接上点击重置密码,目前通过我的路线点击以下功能

public function passwordReset($id)
    

        $user = User::FindOrFail($id);

        Password::sendResetLink($user->email);

    

我不熟悉 Laravel 的默认密码重置功能,所以我可能不太了解,但我收到以下错误:

参数 1 传递给 Illuminate\Auth\Passwords\PasswordBroker::sendResetLink() 必须是 类型数组,给定字符串,

【问题讨论】:

您需要传入一个凭据数组,而不是字符串。 感谢@Ian 如果这是一个发送密码重置功能,为什么我需要传递密码?确定这是由用户重置的吗? 您不需要传递密码。 【参考方案1】:

你需要发送一个以email为key的数组:

Password::sendResetLink(['email' => $user->email]);

【讨论】:

比 5.2 容易多了!!

以上是关于Laravel 5.4 密码重置的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.4 中自定义忘记密码的电子邮件

Laravel 手动生成重置密码令牌:收到错误“此密码重置令牌无效”

Laravel 5 邮箱重置密码

Laravel 5 密码重置电子邮件未发送

Laravel 5 重置密码通知不会发送

Laravel 更改密码重置特定令牌的令牌持续时间