我正在尝试使用路由名称获取控制器名称。
我有一个路由'dashboard‘,我想获取控制器的名称,以便稍后在同一个控制器上执行一个方法。
我阅读了文档,但找到了一种方法或方式。
https://laravel.com/api/5.7/Illuminate/Routing/Route.html
任何建议都将不胜感激。
发布于 2019-03-02 00:05:10
例如,这将为您提供有关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')来获取所有路由信息。
发布于 2019-03-01 23:52:44
您可以尝试使用:
get_class(\Request::route()->getController());https://stackoverflow.com/questions/54947864
复制相似问题