Laravelの「ルーティング」とは

株式会社WOWNエンジニアチームです。

前回、Laravelの構造の簡単な話をしました。「MVCモデルという構造で作成されている」「モデル、ビュー、コントローラというファイルに役割を分けている」という話です。

実は、前回話さなかった重要な分野がもう1つあります。今回はそのルーティングという分野の話をさせてください。

 

イントロダクション:Laravelファイル

Laravelのプロジェクトファイルは、おおよそこのような構成になっています。

いろんなフォルダがありますね。

少しだけフォルダごとの役割を解説すると、以下のようなものになります。

フォルダ名 内容
app アプリケーションのプログラムが入っています。
前回の話で言うと、コントローラモデルはここに入ります。
bootstrap アプリケーションの実行時、最初に行われる処理が入っています。
config アプリケーションの設定ファイルが入っています。
database データベース関連のファイルが入っています。
resources アプリケーションが画面表示に使うファイルが入っています。
画像ファイルやCSSファイルなどと、前回の話のビューはここに入ります。
routes ルート情報を保存するフォルダです。
storage ログの記録や一時的なファイル保存などを行うフォルダです。
tests ユニットテスト関連のファイルを保存するフォルダです。
vendor Laravel(フレームワーク本体)のプログラムをまとめるフォルダです。

いろいろ新しい用語が出てきていますが、ほとんどのフォルダは今回の話とは関係ないので話半分程度にお読みください。

今回の話は、この中にあるroutesフォルダに関する話です。

 

ルーティング

routesフォルダの中には、ルーティングを制御するファイルが入っています。
ルーティングとは何なのかをざっくり言うと、交通整理を行う機能です。

皆さんが今このWOWNブログを見る時にも、ブラウザには
「https://www.wown.co.jp/blog/?p=4709」というページのアドレス(URL)が表示されています。
一般的なHTMLとCSSで作るWebページであれば、例えば「blog」フォルダに「4709.html」とファイルを用意すれば、「http://◯◯/blog/4709.html」というアドレスにアクセスすることで自動的にそのファイルが読み込まれて表示されます。

しかしLaravelではそうはいきません。Laravelでは特定のアドレスにアクセスすると、そのアドレスに割り当てられたプログラムを実行することで画面表示を作るのです。

この「どんなアドレスにアクセスされると」「どの処理を実行するのか」という組み合わせを作成するのがルーティングです。

 

例えば

Laravelのroutesフォルダの中にあるweb.phpファイルには、例えばこんな感じのコードが書いてあります。

Route::get('/user/list', function () { return Inertia::render('User/UserList'); });
Route::get('/user/profile', function () { return Inertia::render('User/Profile'); });
Route::get('/', [HomeController::class, 'index'])->name('dashboard');

内容を簡単に解説すると、

1行目はhttps://◯◯/user/listというURLにアクセスされた時、resources/js/Pages/User/UserListという階層にあるビューファイルを探し、その内容で画面を表示してください」(inertiaというMiddlewareも使っています)

2行目も同様に、https://◯◯/user/profileというURLにアクセスされた時、resources/js/Pages/User/Profileという階層にあるビューファイルを探し、その内容で画面を表示してください」

3行目は「https://◯◯/」というURLにアクセスされた時、HomeControllerというコントローラにindexという関数があるので、その処理に基づいて表示を制御してください」

といった内容です。

 

ルーティングがあると?

ルーティング制御の一手間が必要な分、3行目のように表示先をプログラムによって変更することができたりと、柔軟な表示の制御ができるわけです。
例えば同じURLにアクセスされても「ユーザーのログイン状態を確認して、管理者ユーザーであれば管理ページへ、そうでなければトップページを表示」などの処理ができます。

 

 

ルーティングの話は、次回へもう少し続きます。

WEB制作・ITに関するお悩みや
ご質問等お気軽にご相談ください

contact

この記事の著者

コメントする

関連記事