Laravelの名前付きルート【現役エンジニアが解説】
今回は、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メソッドを使います。