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