目次
Laravelの記事一覧は下記
PHPフレームワークLaravelの使い方
Laravelバージョン
動作確認はLaravel Framework 7.19.1で行っています
前提条件
eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています
Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpにredirect1メソッド、redirect2、redirect3メソッドを追記
public function redirect1(Request $request)
{
return view('sample.redirect1');
}
public function redirect2(Request $request)
{
return redirect('sample/redirect3')->withInput();
}
public function redirect3(Request $request)
{
return view('sample.redirect3');
}
redirect('sample/redirect3')でsample/redirect3にリダイレクトするRedirectResponseクラスのインスタンスが返ってきます。これをreturnするとリダイレクトされるのですが、
さらに、redirect2へのリクエストデータをredirect3でもold関数で使えるようにするためにwithInputを呼んでいます
withInputを実行すると、入力値が次のユーザーリクエストの処理中だけ利用できるフラッシュデータとしてセッションに保存されます
(2) /sample/routes/web.phpに下記を追記
Route::get('sample/redirect1', 'SampleController@redirect1'); Route::post('sample/redirect2', 'SampleController@redirect2'); Route::get('sample/redirect3', 'SampleController@redirect3');
viewの作成
(1) /sample/resources/views/sample/redirect1.blade.phpファイル作成
<html>
<head>
<title>sample</title>
</head>
<body>
<form action="{{ url('sample/redirect2') }}" method="post">
@csrf
<div>a<input type="text" name="a" value="{{ old('a') }}"></div>
<div>b<input type="text" name="b" value="{{ old('b') }}"></div>
<div>c<input type="text" name="c" value="{{ old('c') }}"></div>
<input type="submit" >
</form>
</body>
</html>
(2) /sample/resources/views/sample/redirect3.blade.phpファイル作成
<html>
<head>
<title>sample</title>
</head>
<body>
<div>{{ old('a') }}</div>
<div>{{ old('b') }}</div>
<div>{{ old('c') }}</div>
</body>
</html>
動作確認
http://localhost/laravelSample/sample/redirect1
a、b、cに何か値を入力して送信ボタンクリック
sample/redirect3にリダイレクトされました