如何在中间件Laravel中获取所请求的控制器和操作的名称

时间:2015-05-25 16:52:39

标签: php laravel laravel-5

我是Laravel的新手,我希望在beforefilter middelware中获得所请求的控制器和操作的名称。

谢谢, DJ

1 个答案:

答案 0 :(得分:16)

Laravel 5.6:

class_basename(Route::current()->controller);

Laravel 5.5及更低版本

您可以使用Route::currentRouteAction()检索当前操作名称。不幸的是,此方法将返回完全命名空间的类名。所以你会得到类似的东西:

App\Http\Controllers\FooBarController@method

然后只需单独的方法名称和控制器名称:

$currentAction = \Route::currentRouteAction();
list($controller, $method) = explode('@', $currentAction);
// $controller now is "App\Http\Controllers\FooBarController"

$controller = preg_replace('/.*\\\/', '', $controller);
// $controller now is "FooBarController"