【Laravel】Routingの実装方法まとめ!web.phpの使い方

この記事からわかること
- LaravelのRoutingとは?
- WebページにアクセスするURLを設定する方法
- web.phpの使い方
- パラメータを受け取る方法
\ アプリをリリースしました /
環境
- Laravel:8.83.27
- Laravel Installer:4.2.9
- PHP(MAMP): 8.0.8
LaravelのRouting(ルーティング)とは?
Laravelを使用してWebサイトを作成する時にはRouting(ルーティング)をしないと正しくページが表示されません。Routing(ルーティング)とはリクエストされているURLに対して指定したコンテンツ(アクション)を正しく返すように処理する機能のことです。
Routing機能を使うことでトップページ以下のページの割り振りや許容するHTTPメソッドの種類、クエリパラメータの処理などリクエストの種類に応じたさまざまな適切な処理を定義することが可能になっています。
Routingを行うためのファイルはLaravelプロジェクト内のroutes
ディレクトリの中に格納されています。
web.php
その中の「web.php」がWebページにアクセスするための基本的なルーティング設定を記述していくファイルになります。プロジェクト作成時にデフォルトで記述されているルーティングを見てみます。
5行目でRoute
クラスの静的メソッド::get
を呼び出しています。1つ目の引数にはトップページ以降のパス(URL)を渡します。以下の場合は/
のみなのでトップページにアクセスされた時のルーティングが実装されています。
2つ目の引数には関数またはコントローラーアクションを渡します。上記の場合は無名関数の中でview('welcome')
を返しています。例えばこのような感じです。
他のファイルの役割
- web.php:基本的なWebページのルーティング
- api.php:APIのルーティング。認証機能など
- console.php:コンソール用のルーティング
- channels.php:ブロードキャスト用のルーティング
view関数
view
関数は名前の通りにViewを生成するためのメソッドです。引数にはブレードテンプレートファイル(XXXX.blade.php)の名称を指定します。
プロジェクト生成時にはresources/views/welcome.blade.php
が用意されているのでトップページにアクセスすることでLaraveのページが開くようになっています。
ルートパラメータを受け取る
ルーティングではURLからパラメータを受け取りViewに反映させることが可能になっています。まずは新しいルーティングを追加します。/user/{id}/{name?}
がアクセスされるパス部分であり、{id}
とすることでその部分を関数またはテンプレート側から取り出せるようになります。
また{name?}
となっているのは任意パラメータです。ここに値があれば受け取れるしなければ格納されません。これをController側で受ける際は以下のようになります。任意パラメータの箇所は初期値を格納しておきます。
ブレードテンプレートから受け取る
先ほどはそのまま関数に渡して表示させていましたが実際にはブレードテンプレートに渡すことが多いかと思います。ブレードテンプレートに渡すにはまずコントローラー側を以下のように変更します。
メソッドの中には$data
変数を定義中に辞書形式でデータを格納しています。それをviewメソッドの第2引数に渡すことでテンプレート側に渡すことができます。テンプレート側では辞書のキー値名の変数から対象の値にアクセスできます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。