我想从控制器中手动向特定用户(不是当前登录的用户)发送密码重置请求.我在Laravel代码中做了一些挖掘,似乎我应该在ResetsPasswords
中调用postEmail(Request $request)
,但我似乎不知道如何访问正确的PasswordController
实例来调用它.
我想从控制器中手动向特定用户(不是当前登录的用户)发送密码重置请求.我在Laravel代码中做了一些挖掘,似乎我应该在ResetsPasswords
中调用postEmail(Request $request)
,但我似乎不知道如何访问正确的PasswordController
实例来调用它.
Why not just something like this for your controller:
<?php
namespace Illuminate\Foundation\Auth;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Password;
class YourController extends Controller
{
public function sendEmail()
{
$credentials = ['email' => $email_address];
$response = Password::sendResetLink($credentials, function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return redirect()->back()->with('status', trans($response));
case Password::INVALID_USER:
return redirect()->back()->withErrors(['email' => trans($response)]);
}
}
}
你并没有真正解释你想如何发送这封信的上下文,所以要做相应的调整.