Laravelでルーティング(web.php, コントローラー)の使い方


web.phpに最初から入っているコードを使って解説

初めてlaravelのプロジェクトファイルを作って、laravel/uiをインストールすると、web.phpの最終行に以下の記述がある

web.php
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
  • /home: ドメインの後に入るファイルパスを指定
  • App\Http\Controllers\HomeController::class: HomeControllerのclassメソッドを参照
  • ->name('home');: ルーティング名

web.phpに新しいルートを作ってみる

web.phpの最終行に先ほどのコードを複製して、ファイルパスの部分と、ルーティング名を変更する(ややこしくなるので名称は同じにしてOK)

web.php
Route::get('/任意の名前', [App\Http\Controllers\HomeController::class, 'index'])->name('任意の名前');

コントローラーに追加

app/Http/HomeController.phpを開く。
すると、さっきのHomeControllerクラスを継承したControllerが入っている。

24行目〜27行目あたりにある以下の記述を見る。
以下の記述の部分で、indexに来たら(この関数が呼ばれたら)、コントローラーはviews/home.blade.phpを返す、と書いてある。

HomeController.php
public function index()
    {
        return view('home');
    }

これをもとに新しいルートを作りたいので、下の行に複製する。

複製できたら、さきほどweb.phpで書き込んだ任意の名前を入力

HomeController.php
public function 任意の名前()
    {
        return view('任意の名前');
    }

すると、任意の名前に来たら(この関数が呼ばれたら)、コントローラーはviews/任意の名前.blade.phpを表示させる、という記述が完成する。