Laravel URL 处理:通过 URL 获取路由参数
问题描述
如何通过上面的 URL 来取路由名称和路由参数?
解决方法
$request = app('request')->create('https://learnku.com/laravel/wikis/26002');
$route = app('router')->getRoutes()->match($request);
$route->getName();
$route->getAction();
$route->parameters();
输出:
>>> $request = app('request')->create('https://learnku.com/laravel/wikis/26002');
=> Illuminate\Http\Request {#1813
.
.
.
}
>>>
>>> $route = app('router')->getRoutes()->match($request);
=> Illuminate\Routing\Route {#747
.
.
.
}
>>>
>>> $route->getName();
=> "wikis.show"
>>> $route->getAction();
=> [
"middleware" => [
"web",
"restrict_web_access",
],
"uses" => "App\Http\Controllers\WikisController@show",
"controller" => "App\Http\Controllers\WikisController@show",
"namespace" => "App\Http\Controllers",
"prefix" => null,
"where" => [],
"as" => "wikis.show",
]
>>> $route->parameters();
=> [
"community_slug" => "laravel",
"wiki" => "26002",
]
匹配不到就会抛出一个 404 异常,怎么能重写这个方法呢
已找到解决办法