- 命名路由可以方便地为指定路由生成 URL 或者重定向。通过在路由定义上链式调用 name 方法指定路由名称:
Route::get('user/profile', function () {
//
})->name('profile');
Route::get('user/profile', 'UserController@showProfile')->name('profile');
- 为路由指定了名称后,就可以使用全局辅助函数 route 来生成链接或者重定向到该路由:
// 生成 URL...
$url = route('profile');
// 生成重定向...
return redirect()->route('profile');
- 如果是有定义参数的命名路由,可以把参数作为 route 函数的第二个参数传入,指定的参数将会自动插入到 URL 中对应的位置:
Route::get('user/{id}/profile', function ($id) {
//
})->name('profile');
$url = route('profile', ['id' => 1]);
- 如果你想判断当前请求是否指向了某个路由,你可以调用路由实例上的 named 方法。例如,你可以在路由中间件中检查当前路由名称:
/**
* 处理一次请求。
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->route()->named('profile')) {
//
}
return $next($request);
}
网友评论