ビューでは、次を使用してアクションを取得できます
$this->action
しかし、コントローラー名を取得できません
$this->controller
ビューで現在のコントローラーを取得する適切な方法は何ですか?
ビューでは、次を使用してアクションを取得できます
$this->action
しかし、コントローラー名を取得できません
$this->controller
ビューで現在のコントローラーを取得する適切な方法は何ですか?
$this->params['controller']
現在のコントローラを取得するために使用します。
を実行して、debug($this->params)
他の使用可能な変数を表示できます。
次のようにコントローラーを取得できます。
echo "<pre>controller:".$this->request->params['controller']."</pre>";
$this->params
短いですが、$this->request->params
よりオートコンプリートに適しています。この質問からオートコンプリート オプションを確認できます: PHPStorm autocomplete for CakePHP custom helpers in view files
リクエストに関するその他のデータは、次のように取得できます。
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>";
編集:
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 では小文字でした。
$this->name
コントローラーの名前も付けます。との違い$this->params['controller']
は、最初の文字が大文字になっていることです
debug($this->name);
debug($this->params['controller']);
結果:
\app\Controller\AppController.php (line 176)
'Users'
\app\Controller\AppController.php (line 177)
'users'
Cakephp 3.6 以降の場合:
上記の解決策は機能しますが、非推奨の警告が表示され、cakephp 4 では機能しません。そのため、次のコードを使用してコントローラー名を取得することをお勧めします。ビューページとコントローラーでも機能します。
$this->request->getParam('controller')
電流を取得するには、
$this->params['controller']
$this->params['action']
$this->params['pass']