Laravelの名前付きルート【現役エンジニアが解説】

PROGRAM

今回は、Laravelの名前付きルートについて、簡単に解説していきます。

ルートに名前を付ける

Laravelではルートに名前を付けることができます。

名前付きルートは、いつものルート設定と同様に、routes/web.phpで設定可能です。

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/hoge/home', [App\Http\Controllers\HogeHomeController::class, 'index'])->name('hoge.home');

上記のコードのように、通常の設定の後ろでnameメソッドを使って引数に任意の名前を設定します。

Viewから名前付きルートを呼び出す

名前付きルートはViewから呼び出せます。

route関数にルートの名前を引数にすると、そのURLが取得できます。

<a href="{{ route('hoge.home') }}">Hoge Home</a>

上記のように、Viewではroute関数を{{ }}で囲ってURLを出力します。

Controllerから名前付きルートを呼び出す

名前付きルートはControllerからも呼び出せます。

$url = route('hoge.home');

Viewと同じようにroute関数を使うことでURLを取得できます。

return redirect()->route('hoge.home');

リダイレクトさせる場合は、上記の例のように、redirect関数を呼んでからrouteメソッドを使います。