Laravel - sendResetLink 不起作用

Posted

技术标签:

【中文标题】Laravel - sendResetLink 不起作用【英文标题】:Laravel - sendResetLink not working 【发布时间】:2016-08-09 09:48:25 【问题描述】:

在我的项目中,我已授予管理员角色将用户添加到站点的权限。出于安全原因,我散列一个随机字符串,作为临时密码存储,然后我想向用户发送一封带有标准 Laravel 重置密码模板的电子邮件。

我有以下几点:

$user = new User();
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(str_random(8));
$user->save();

$response = Password::sendResetLink(Input::get('email'), function (Message $message) 
        $message->subject('Password Reset');
    ); 

我得到的错误是

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

如何在 Laravel 中触发此功能,以便向用户发送密码重置电子邮件?谢谢。

【问题讨论】:

我认为这个错误是不言自明的。 sendResetLink 需要一个数组,而您提供的是一个字符串。 @PawelMysior,非常正确,这就是我遇到的问题。我不确定它在数组中想要什么。 【参考方案1】:

这里的问题是你正在发送字符串电子邮件,你应该发送数组(这就是错误所说的)。

在这种情况下,您应该使用:

Request::only('email')

而不是

Input::get('email')

【讨论】:

感谢您的回复。我试过了,但返回以下错误Non-static method Illuminate\Http\Request::only() should not be called statically, assuming $this from incompatible context @Ben 所以在这里将Request 更改为\Request 以在此处使用Request 外观。

以上是关于Laravel - sendResetLink 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在laravel 5.2中,Laravel手动登录始终不匹配

Laravel 8:ReflectionException 函数()不存在

如何在不实例化整个 Laravel 的情况下加载 Laravel 模型?

Laravel - 新项目,注册页面不可用

Laravel 4 + AJAX 不工作

使用 laravel-cors 和 axios 进行 POST 的 Laravel “CSRF 令牌不匹配”