我正在尝试使用路由名称来获取控制器名称。
我有一条路线['dashboard'],我想获取控制器名称,以便稍后在同一控制器上执行方法。
我阅读了文档,但可以找到一种方法或方法。
https://laravel.com/api/5.7/Illuminate/Routing/Route.html
任何建议将不胜感激。
答案 0 :(得分:4)
例如,这将为您提供register
路线的信息:
Route::getRoutes()->getByName('register')->action;
这将为您提供所需的所有信息的数组:
[
"middleware" => [
"web",
],
"uses" => "App\Http\Controllers\Auth\RegisterController@showRegistrationForm",
"controller" => "App\Http\Controllers\Auth\RegisterController@showRegistrationForm",
"namespace" => "App\Http\Controllers",
"prefix" => null,
"where" => [],
"as" => "register",
]
如果您大量这样做,则可以在RouteServiceProvider
中添加宏:
public function register()
{
Route::macro('getByName', function($name) {
return $this->getRoutes()->getByName($name);
});
}
现在您可以简单地做
Route::getByName('register')
获取所有路线信息。
答案 1 :(得分:0)
您可以尝试:
get_class(\Request::route()->getController());