解決したいこと
Laravelコントローラー内のメソッド間で変数の受け渡しを行いたい。
LaravelでWebアプリの実装を行っています。
フォームに入力された内容を受け取り、メソッド内で使った後、次に呼び出されるメソッドでも同じ値の入った変数が使いたいのですが、うまくいかないので、解決したいです。
現状のコード
<?php ~割愛~ class PostController extends Controller { public $account; public function setAccountId($accountId){ return $this->$account = $accountId; } ~割愛~ public function show(Request $request) { $this->account = $request->old('name'); // ビューファイルのinputタグで指定しています。ここでの受け取りは確認できています。 return \View::make('sendMail.Confirmation'); } public function SendMail(Request $request) { //表示したAccount IDの取得 $name = $this->account dd($name); // →ここで前ページで受け取った入力値を表示がさせられるようにしたい。 $email = 'xxx@example.co.jp'; $time = date('Y/m/d H:i', strtotime('now')); $url = "xxx"; $accountId = Account::where('name', $name)->first(['id'])->id; //このあたりの処理で$nameを扱いたい。 } }
#dd($namet)の実行結果
null
質問
PHP,Laravel初学者です。初歩的な質問になってしまうかもしれません。
showメソッドの時点で、$requestの中に入力値を受け取っており、その入力値を変数に入れておき、その後に呼び出されるSendMailメソッドで入力値の入った同じ変数を扱いたいです。
showメソッドで変数の受け取りまでは確認できております。
以前sessionを使って値を引き継ぐ実装を行っていたのですが、大人の事情でダメと言われてしまいました・・・
初めての質問投稿なのでわかりにくい箇所があるかもしれません。もし不明点ありましたら、ご指摘下さい。
どなたかご回答して頂けると幸いです。よろしくお願い致します。
routes/web.php の該当部分を提示してください