0

如何在 Lumen 中获取当前控制器和动作

假设我在路由中有一个用户资源。那么如果我访问user/show/id,我可以在控制器中获取当前控制器名称和动作名称吗?

class Controller extends BaseController
{
    public function __construct()
    {
         $controllerName = ???;
         $actionName = ??? 
    }
}
4

3 回答 3

0

这是获取动作和控制器名称的一个简单技巧

class Controller extends BaseController
{
  public function __construct()
  {
    $this->_request = app('Illuminate\Http\Request');
    list($controllerName ,$actionName)=explode('@',$this->_request->route()[1]['uses']);
    print_r($controllerName);
    print_r($actionName);
  }
}
于 2017-07-22T09:06:13.230 回答
0

我已经使用并检查了 Laravel / Lumen 8 版本以在控制器中获取控制器和动作名称

public function getControllerActionName(){
        $this->_request = app('Illuminate\Http\Request');
        list($controllerName ,$actionName) = explode('@',$this->_request->route()[1]['uses']);
        $controllerName = strtolower(str_replace("App\Http\Controllers\\",'',$controllerName));
        $actionName = strtolower($actionName);
        return array('controller' => $controllerName, 'action' => $actionName);
    }

它对我有用。我希望,这也会对你有所帮助。感谢您提出这个问题。

于 2021-06-02T13:26:14.917 回答
0

有了这个,您将拥有 Action 和 Controller 名称(只是没有路由的名称):

class Controller extends BaseController
{
    public function __construct()
    {
        list($controllerName, $actionName) = explode('@', substr(strrchr($request->route()[1]['uses'], '\\'), 1));
    }
}
于 2017-09-06T13:28:03.173 回答