在View中,我可以通过使用来获取操作
$this->action
Run Code Online (Sandbox Code Playgroud)
但是,我无法获得控制器名称
$this->controller
Run Code Online (Sandbox Code Playgroud)
在View中获取当前控制器的正确方法是什么?
tra*_*nte 12
你可以得到这样的控制器:
echo "<pre>controller:".$this->request->params['controller']."</pre>";
Run Code Online (Sandbox Code Playgroud)
虽然$this->params更短,但$this->request->params更自动完整友好.您可以从此问题中检查自动完成选项:PHPStorm在视图文件中自动完成CakePHP自定义帮助程序
有关请求的其他数据可以这样:
echo "<pre>action:".$this->request->params['action']."</pre>";
echo "<pre>request:"; print_r( $this->request ); echo "</pre>";
echo "<details><summary>this:</summary><pre>";
print_r( $this ); echo "</pre></details>";
Run Code Online (Sandbox Code Playgroud)
编辑:
从CakePHP 3开始$this->params删除快捷方式.因此,您应该使用$this->request->params['controller']CakePHP 3.
http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html#id2
另请注意,控制器的第一个字符是大写的.它在Cakephp 2中是小写的.
小智 9
$this->name还给你控制器的名字.他们的不同之处$this->params['controller']在于它的首字母大写
debug($this->name);
debug($this->params['controller']);
Run Code Online (Sandbox Code Playgroud)
结果是:
\app\Controller\AppController.php (line 176)
'Users'
\app\Controller\AppController.php (line 177)
'users'
Run Code Online (Sandbox Code Playgroud)
小智 6
我正在使用 cakephp 3.2
$this->params['controller'] - It is not working, showing error message as bellow..
Run Code Online (Sandbox Code Playgroud)
《失踪的帮手》
以下代码在 cakephp 3.2 中正常工作
$this->request->params['controller'] - Working
Run Code Online (Sandbox Code Playgroud)