2016-08-11 8 views
1

コントローラ内から特定のユーザ(現在ログインしていないユーザ)にパスワードリセット要求を手動で送信したいとします。私はLaravelのコードを掘り下げていましたが、ResetsPasswordspostEmail(Request $request)を呼び出す必要があるようですが、私は右のPasswordControllerインスタンスにアクセスする方法を知ることができません。Laravel 5.2で手動でパスワードリセットリクエストを送信するにはどうすればよいですか?

+0

あなたは'使用ResetsPasswordsを行うことによって、形質を含むしようとしたことがありますか? – Jonathon

+0

@Jonathonはい。私は 'ResetsPasswordsを使う 'と' $ this-> postEmail($ request); 'を使いました。出力はありません。エラーも成功も、私は電子メールを受け取ることはありません。 –

+0

あなたのauth.php設定ファイルドライバを更新してください – ClearBoth

答えて

5

お使いのコントローラのためにこのような理由だけではなく、何か:

<?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)]); 
     } 
    } 
} 

あなたは本当にあなたがこれを送信する方法の文脈を説明し、それに応じ調整されません。

+0

ありがとうございます - これは正しい軌道に乗ってくれました! sendResetLinkへの最初の引数が '['email' => $ email_address]' –

+0

という形式の配列になっていることを明確にするために投稿を編集しました。嬉しいです! –

+0

あなたは私の一日を救った! – oskarko

0

5.5の完全な制御に:; `あなたのコントローラ内部で、その後トレイトから関連するメソッドを呼び出す

$user = User::where('email', request()->input('email'))->first(); 
    $token = Password::getRepository()->create($user); 

    Mail::send(['text' => 'emails.password'], ['token' => $token], function (Message $message) use ($user) { 
     $message->subject(config('app.name') . ' Password Reset Link'); 
     $message->to($user->email); 
    }); 
関連する問題