如何获得当前的控制器&在Lumen的行动
假设我在路由中有一个用户资源。
然后,如果我访问user/show/id
,我可以获得当前的控制器名称和控制器中的动作名称?
class Controller extends BaseController
{
public function __construct()
{
$controllerName = ???;
$actionName = ???
}
}
答案 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);
}
它对我有用。我希望,这也能帮助你。感谢您提出这个问题。