In View, I can get action by using
$this->action
But, I cannot get controller name by
$this->controller
What is the proper way to get current controller in View?
Use $this->params['controller']
to get the current controller.
You can do a debug($this->params)
to see other available variables.
You can get controller like this:
echo "<pre>controller:".$this->request->params['controller']."</pre>";
Although $this->params
is shorter, $this->request->params
is more autocomplete friendly. You can check the autocomplete options from this question: PHPStorm autocomplete for CakePHP custom helpers in view files
Other data about request can be taken like this:
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>";
Edit:
As of CakePHP 3 $this->params
shortcut is removed. So you should user $this->request->params['controller']
for CakePHP 3.
http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html#id2
Also note that first character of controller is uppercase. It was lowercase in Cakephp 2.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With