こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelで画面で入力した内容をRequestを使って遷移先の画面に表示する方法を丁寧に解説していきます。
目次
前提条件:実行環境について
実行環境はWindowsで、Laravelのバージョンは【8.10.0】です。
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
Laravelのインストールのやり方については、以下の記事をご参考ください。
この解説記事では、
- テキストボックス
- ボタン
を表示するために、Formファザードを使用しています。
インストールするやり方は、以下の記事をご参考ください。
画面で入力した内容をRequestを使って遷移先の画面に表示する方法
画面で入力した内容をRequestを使って遷移先の画面に表示する方法を解説します。
- 画面で入力された値を渡す方法
- コントローラーでRequestで渡された値を取得する方法
という順番で解説します。
画面で入力された値を渡す方法
BladeビューでFormファザードでは、
- method
- url
を指定します。
テキストボックスはForm::openのネストの中で設定します。
以下は指定のサンプルです。
Formファザードでテキストボックスを作成する方法は、以下の記事をご参考ください。
コントローラーへのルーティングの設定は、以下の記事をご参考ください。
コントローラーでRequestで渡された値を取得する方法
コントローラーでRequestで渡された値を取得するには、関数の引数にRequestを設定し、そのRequestをinput関数を使って値を取得します。
以下は指定のサンプルです。
Requestを使うためには
1 |
use Illuminate\Http\Request; |
をuseする必要があります。
コントローラーからBladeビューに値を渡す詳細な方法については、こちらの記事をご参考ください。
では、次の章で実際に使ってみます。
画面で入力した内容をRequestを使って遷移先の画面に表示するやり方を解説するプログラムの概要
画面で入力した内容をRequestを使って遷移先の画面に表示するやり方を解説するプログラムは、
- コントローラー
- 入力用のBladeビュー
- 出力用のBladeビュー
- routes\web.php
4つを使います。
コントローラーは名前を【SampleController.php】とし、Requestから入力値を取得し、出力用のBladeビューに渡します。
Bladeビューは
- 入力用:sample.blade.php
- 出力用:sampletransition.blade.php
とし、どちらもviewsディレクトリ直下に格納します。
入力用の【sample.blade.php】は、ボタンを押すと【sampletransition】が走るようルートを設定します。
routes\web.phpには、【http://〇〇.〇〇.〇〇:8000/sample】でアクセスした場合、【sample.blade.php】を表示させるように設定します。
【sampletransition】がgetで来た場合、作成したコントローラーを実行するよう設定します。
SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class SampleController extends Controller { public function sample(Request $request){ $sample = $request->input('sample'); return view('sample', compact('sample')); } public function showPage(Request $request){ $userName = $request->input('user_name'); $age = $request->input('age'); return view('sampletransition', compact('userName', 'age')); } } |
入力用:sample.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>入力用サンプルページ</h1> {{Form::open(['method' => 'get', 'url' => 'sampletransition'])}} <p>ユーザー名:{{Form::text('user_name', '', ['id' => 'username'])}}</p> <p>年齢:{{Form::text('age', '', ['id' => 'age'])}}</p> <p>{{ Form::button('入力', ['type' => 'submit'])}}</p> {{Form::close()}} </body> </html> |
出力用:sampletransition.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>出力用サンプルページ</h1> <p>ユーザー名:{{$userName}}</p> <p>年齢:{{$age}}</p> </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', function () { return view('sample'); }); Route::get('/sampletransition', [SampleController::class, 'showPage']); |
実行して確認
画面で入力した内容をRequestを使って遷移先の画面に表示することができるのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/sample
※コマンドプロンプトに記載されているURL - http://localhost:8000/sample
どちらかのURLにアクセスすれば、入力画面が表示されます。
右クリックして、【ページのソースを表示】をすると、以下のようにHTMLが展開されています。
- ユーザー名:田中
- 年齢:45
を入力し、ボタンを押します。
入力した値を取得して、出力用の【sampletransition.blade.php】に遷移して、表示していることが確認できました!
まとめ:画面で入力した内容をRequestを使って遷移先の画面に表示してみよう
以上がLaravelで画面で入力した内容をRequestを使って遷移先の画面に表示するやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント