🛣
Laravelを使ったルーティング方法
Laravelのルーティングについて
LaravelではMVCモデル[1]というアーキテクチャスタイルを採用しています。
まずはルーティングファイルから別のファイルへ遷移させます。
そのとき直接、Viewファイルへ遷移させて表示を行うかControllerファイルへ遷移させるかをルーティングファイルから指定することができます。
実行環境
Laravel ver 8.58.0
PHP ver 7.3.24
書き方
Controllerに遷移させる場合は、事前にTestControllerクラスとTestControllerにindexメソッドをそれぞれ定義しておく必要があります。
resources/routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TestController;
// viewへ直接遷移させるとき
// パスが「/」のときwelcome.blade.phpファイルの内容を表示する
Route::get('/', function(){
return view('welcome');
});
// Controllerに遷移させたいとき
// tests/testにアクセスすると
// TestControllerクラスのindexメソッドが呼び出されます
Route::get('tests/test', [TestController::class, 'index']);
ハマったところ
バージョン8.x環境で、例のように書いても
Target class [○○Controller] does not exist.
というエラーが起きました。
エラーの原因は下記のように"App"のところが大文字か小文字かの違いでした。
// 正解
use App\Http\Controllers\TestController;
// 間違い
use app\Http\Controllers\TestController;
パスについて
下記コマンドを入力するとサーバが起動します。
php artisan serve
サーバ起動に成功すると下記のように表示されます。
Starting Laravel development server: http://127.0.0.1:8000
パスが「/」のときはURLが http://127.0.0.1:8000 となります。
パスが「tests/test」のときはURLが http://127.0.0.1:8000/tests/test となります。
参考
-
Model, View, Controllerの略でロジックの部分(Model)と表示する部分(View)を分けて記述することが可能です。 ↩︎
Discussion