こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでリクエストの全入力データを取得するallメソッドをサンプルプログラムを交えて解説していきます。
リクエストから値を取得する基本については、こちらの記事をご参考ください。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
Laravelのバージョン | 8.42.1 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
リクエストの全データを取得するallメソッドを解説
リクエストの全データを取得するallメソッドを解説します。
allメソッドでリクエストを取得するには
1 2 3 |
public function sample(Request $request){ $input = $request->all(); } |
と使います。
上記の変数$inputには、リクエストを配列で受け取ります。
allメソッドを使うには
1 |
use Illuminate\Http\Request; |
を宣言することが必要です。
では、次の章で実際に使ってみます。
リクエストの全データを取得するallメソッドを解説するプログラムの概要
リクエストの全データを取得するallメソッドを解説するプログラムは、
- コントローラー
- Bladeビュー
- web.php
3つを使います。
コントローラーは名前を【SampleController.php】とし、Requestからすべてのパラメータを取得し、出力用のBladeビューに渡します。
Bladeビューは、コントローラーから渡されたパラメータを出力させます。
ファイル名は【show_sample.blade.php】でviewsディレクトリ直下に格納します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/show】でアクセスした場合、SampleControllerの【show_sample.blade.php】を呼ぶメソッドを呼ぶように定義します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
コントローラー:SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SampleController extends Controller { public function show(Request $request){ $input = $request->all(); return view('show_sample', ['input'=>$input]); } } |
Bladeビュー:show_sample.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>Requestサンプルページ</h1> @foreach($input as $key => $value) <p>{{$key}}->{{$value}}</p> @endforeach </body> </html> |
@foreachとは、Bladeビューで繰り返し処理ができるディレクティブです。
詳しくはこちらの記事をご参考ください。
web.phpのサンプルプログラム
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/show', [SampleController::class, 'show']); |
実行して確認
本当にすべてのリクエストが取得できているのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
リクエストで渡す値は、以下です。
キー | バリュー |
---|---|
name | kai |
age | 56 |
job | polics |
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/show?name=kai&age=56&job=police
※コマンドプロンプトに記載されているURL - http://localhost:8000/show?name=kai&age=56&job=police
どちらかのURLにアクセスすれば、取得したリクエストが繰り返し処理で表示されていることが確認できます!
まとめ:リクエストの全入力データを取得したいときはallメソッドを使ってみよう
以上がLaravelでリクエストの全入力データを取得するallメソッドでした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント