こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでリクエストパラメータの存在チェックができるhasメソッドをサンプルプログラムを交えて解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
Laravelのバージョン | 8.42.1 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
hasメソッドとは
hasメソッドについて解説します。
hasメソッドは引数に指定したパラメータがリクエストに存在するか判定し、結果をboolで返すメソッドです。
返り値は以下になります。
リクエストにパラメータが存在する | trueを返す |
---|---|
リクエストにパラメータが存在しない | falseを返す |
hasメソッドを使うには
1 |
use Illuminate\Http\Request; |
を宣言することが必要です。
以下のように使います。
1 2 3 |
public function sample(Request $request){ $result = $request->has('test'); } |
上記のサンプルでは$requestに「test」が存在していればtrue、存在しなければfalseを返します。
では、次の章で実際に使ってみます。
リクエストでパラメータの存在チェックができるhasメソッドを解説するプログラムの概要
リクエストでパラメータの存在チェックができるhasメソッドを解説するプログラムは、
- コントローラー
- Bladeビュー
- web.php
3つを使います。
コントローラーは名前を【SampleController.php】とし、Requestから指定のパラメータがあるか確認し結果を、出力用のBladeビューに渡します。
コントローラーからBladeビューに値を渡して表示する方法は以下の記事をご参考ください。
Bladeビューは、コントローラーから渡されたパラメータを出力させます。
ファイル名は【show_sample.blade.php】でviewsディレクトリ直下に格納します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/sample_param】でアクセスした場合、SampleControllerの【show_sample.blade.php】を呼ぶメソッドを呼ぶように定義します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
コントローラー:SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SampleController extends Controller { public function sample_param(Request $request){ $fish = ''; if ($request->has('fish')) { $fish = '入力値が存在します。値は'.$request->fish; } else { $fish = '入力値が存在しません。'; } $meat = ''; if ($request->has('meat')) { $meat = '入力値が存在します。値は'.$request->meat; } else { $meat = '入力値が存在しません。'; } return view('show_sample', compact('fish', 'meat')); } } |
Bladeビュー:show_sample.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>Requestサンプルページ</h1> <p>パラメータ「fish」は{{$fish}}</p> <p>パラメータ「meat」は{{$meat}}</p> </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample_param', [SampleController::class, 'sample_param']); |
実行して確認
本当にリクエストのパラメータの存在チェックができているのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
「meat」にのみパラメータを指定します。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/sample_param?meat=chicken
※コマンドプロンプトに記載されているURL - http://localhost:8000/show?sample_param?meat=chicken
どちらかのURLにアクセスすれば、リクエストパラメータの存在チェックができていることが確認できます。
まとめ:リクエストパラメータの存在チェックをしたいときはhasメソッドを使ってみよう
以上がLaravelでリクエストパラメータの存在チェックができるhasメソッドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント