質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

1959閲覧

Laravel auth パスワードリセット時にどのメールアドレスに送信したか表示したい

yowayowanitohei

総合スコア31

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

0クリップ

投稿2021/06/22 04:12

編集2021/06/22 04:24

LaravelのAuthをインストールし、ログインログアウトを実装しました。
システムの仕様上、メールアドレスではなく、
ユーザIDでのログイン系機能が利用できるようにする必要があり、実装を少し変えました。

パスワードリセットの際にユーザIDでパスワードリセットが送信されるようになりましたが、
メール送信された場合に、「登録されたメールアドレスに送信されました」というような
メッセージをレスポンスでページに返すようになっています。

ユーザIDの入力しか行っていないので、どのメールアドレスに送信されたか
表示するようにすると親切かなと思い設定を行なっているのですが、

SendsPasswordResetEmails.php

1 public function sendResetLinkEmail(Request $request) 2 { 3                //ユーザIDのバリデーション 4 $this->validateUserID($request); 5 6                //リクエストのユーザIDをもとにDBに登録されたメールアドレスを取得する 7 $user = User::where('user_id',$request['user_id'])->get(); 8 $email = ['email' => $user[0]['email']]; 9 10                //メール送信を行う 11 $response = $this->broker()->sendResetLink($email); 12 13                //正しく送信されたら、登録されているメッセージを返す。 14 return $response == Password::RESET_LINK_SENT 15 ? $this->sendResetLinkResponse($request, $response) 16 : $this->sendResetLinkFailedResponse($request, $response); 17 } 18

上記のユーザIDを入力した場合設定されたメッセージ
「登録されたメールアドレスに送信されました」を返すの処理にプラスして、
どうやって変数に格納したメールアドレスを一緒に返す処理をつければ良いのか
よくわからず困っています。

returnの返し方で、レスポンスに付属してcontrollerで
取得したメールアドレスが格納されている変数「$email」を合わせて
viewに返す方法・参考になるページなどをご存知でしたらお伺いしたいです。

「何言ってんのかわからねえよ」という場合にもご指摘いただけるとありがたいです。
すみませんが、どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下の方にメッセージをビューに返す処理があったことを見落としておりました。
back->with
となっていたので、ちゃんと変数を持ってviewへ帰るように
処理を変更しました。。。

SendsPasswordResetEmails.php

php

1public function sendResetLinkEmail(Request $request){ 2       //ユーザIDのバリデーション 3 $this->validateUserID($request); 4 5      //リクエストのユーザIDをもとにDBに登録されたメールアドレスを取得する 6 $user = User::where('user_id',$request['user_id'])->get(); 7 $email = ['email' => $user[0]['email']]; 8 $request['email'] = $user[0]['email']; 9 10      //メール送信を行う 11 $response = $this->broker()->sendResetLink($email); 12 13      //正しく送信されたら、登録されているメッセージを返す。 14 return $response == Password::RESET_LINK_SENT 15 ? $this->sendResetLinkResponse($request, $response) 16 : $this->sendResetLinkFailedResponse($request, $response); 17} 18 19protected function sendResetLinkResponse(Request $request, $response){ 20 21 //return back()->with('status', trans($response))->with('email',$email); 22 return view('auth.passwords.email', ['status' => trans($response),'request' => $request]); 23}

email.blade.php

php

1 @if(!empty($request)) 2 <div class="alert alert-success"> 3 {{$request['email']}}にメールを送信しました。 4 </div> 5 @endif

投稿2021/06/22 08:35

編集2021/06/22 08:37
yowayowanitohei

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問