コントローラー内でリダイレクトさせる際に、redirect('test/hello')などとするとリダイレクトさせることができますが、この際に変数も一緒に、リダイレクト先へ持たせることはできないでしょうか?
具体的には、ビュー関数のように、return view('test.hello',compact('test','test1))などといった具合にです。
リダイレクトレスポンスに関してはこちらにて調べてみたのですが、分からなかった為、質問させて貰いました。
ご教示頂けましたら、幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
リダイレクト前とリダイレクト後のリクエストは別リクエストなので、変数は引き継げません。
通常、変数を別のリクエストでも利用したい、かつURL上にもパラメータを載せたくない場合はクッキーやセッションの仕組みを使います。
Laravelの機能ですと RedirectResponse::withInput() が使いやすいです。
routes/web.php
php
1<?php 2 3Route::get('test', 'TestController@index'); 4Route::get('test/hello', 'TestController@hello');
app/Http/Controllers/TestController.php
php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7class TestController extends Controller 8{ 9 public function index() 10 { 11 $values = [ 12 'foo' => 1, 13 'bar' => "hoge" 14 ]; 15 return redirect('test/hello')->withInput($values); 16 } 17 18 public function hello(Request $request) 19 { 20 $values = $request->old(); 21 view('test.hello', $values); 22 } 23}
蛇足:
アプリ実装には不要なクラスやメソッドが目にとまる事になるので、ドキュメントページよりAPIリファレンスの方が理解しやすい、とかでなければAPIリファレンスは読まない方がいいです。
Laravelは公式ドキュメントも、日本語訳されている方のドキュメントもしっかりしているので、ドキュメントページに説明は記載されてなないが、APIリファレンスに書いているメソッドでは出来る、みたいな事はほぼありえないです。
FuePHとかだとドキュメントに未記載の実装とかたまにありますけど。
投稿2019/07/16 15:11
編集2019/07/17 14:56総合スコア2727
0
php
1return redirect('/hoge?aaa=bbb&ccc=ddd')
単純に所定のURLにリダイレクトさせると情報を引き継げる
あとはhttp_build_queryとか使ってがんばって
投稿2019/07/16 04:45
総合スコア5036
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/16 05:10
2019/07/16 05:12 編集
2019/07/16 14:30
0
無理して英語ドキュメントにいかなくてもいいとは思いますが(5.5で使ってるバージョン合ってるんでしょうか。いずれにしても日本語訳ドキュメントも優秀なので)。
Laravel 5.8 HTTPレスポンス#リダイレクト
から、要件に合わせてお好きなものをどうぞ(むしろリダイレクトという概念を理解して使うべき)。
これを読んで納得できないのでしたらコアソースからやり方を探るか、実装を根本から見直してください。
「やりたいこと」と「好ましい実現手段」は必ずしも一致しません。
投稿2019/07/16 04:43
編集2019/07/16 04:46総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/17 00:55
2019/07/17 06:56
2019/07/17 07:01
2019/07/17 23:48 編集
2019/07/17 15:14
2019/07/18 00:35 編集