名前付きルートへのURLを生成するには
ルート定義ファイルroutes/web.php
に名前付きルートの設定をしていれば、その名前をグローバルなroute
関数を使用することで、URLを生成したり、設定した名前のルートへリダイレクトできたりします。
例
// URLの生成
$url = route('profile');
// リダイレクトの生成
return redirect()->route('profile');
上記のように、コントローラ内とかで利用可能です。
ルート定義で名前付きルートをするだけで、リダイレクトの文が、とても見やすくなります。ぜひ活用してみましょう。
パラメータも付け加えて、URLを生成することもできる
ちなみに、名前付きルートを設定したルートで、なおかつ、パラメータも定義してある場合は、route
関数の第2引数にパラメータを渡すことができます。
routes/web.php
Route::get('user/{id}/profile', function ($id) {
//
})->name('profile');
上記のように、ルート定義でprofile
という名前を指定のルートにつけて
HogeController.php
$url = route('profile', ['id' => 1]);
// $urlには「 /user/1/profile 」
コントローラでパラメータを渡してあげて、URLを生成することができます。