如何获得当前的控制器&控制器中的动作

时间:2016-12-19 09:56:09

标签: lumen-5.3

如何获得当前的控制器&在Lumen的行动

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

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

3 个答案:

答案 0 :(得分: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);
  }
}

答案 1 :(得分:0)

使用此功能,您将拥有操作和控制器名称(只是没有路由的名称):

class Controller extends BaseController
{
    public function __construct()
    {
        list($controllerName, $actionName) = explode('@', substr(strrchr($request->route()[1]['uses'], '\\'), 1));
    }
}

答案 2 :(得分: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);
    }

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