我们设置了旧的网站CSS,以便body
标签使用Zend Framework 1获得控制器名称的id和操作名称的类。现在我们切换到Laravel 5.我发现通过Route
类获取操作名称的方法,但无法找到控制器名称的方法。我没有在这样的Laravel文档中看到任何内容。有什么想法吗?
这就是你采取行动的方式。注入Route类,然后调用:
$route->getActionName()
。
我正在为控制器寻找类似的东西。我检查了整个路线类并没有找到任何东西。
答案 0 :(得分:44)
如果您的布局是Blade模板,则可以创建一个视图编辑器,将这些变量注入到您的布局中。在 app / Providers / AppServiceProvider.php 中添加如下内容:
public function boot()
{
app('view')->composer('layouts.master', function ($view) {
$action = app('request')->route()->getAction();
$controller = class_basename($action['controller']);
list($controller, $action) = explode('@', $controller);
$view->with(compact('controller', 'action'));
});
}
然后,您的布局模板中会有两个变量:$controller
和$action
。
答案 1 :(得分:7)
我使用简单的解决方案。您可以在任何地方测试和使用它,也可以查看您的观点:
{{ dd(request()->route()->getAction()) }}
答案 2 :(得分:3)
我将简单地用作吼叫
$request->route()->getActionMethod()
答案 3 :(得分:1)
要获得类似PostController的内容,请尝试以下操作...
preg_match('/([a-z]*)@/i', $request->route()->getActionName(), $matches);
$controllerName = $matches[1];
$ matches [1]包括第一组,而$ matches [0]包括匹配的所有内容。所以也不需要@。