35

ビューでは、次を使用してアクションを取得できます

$this->action

しかし、コントローラー名を取得できません

$this->controller

ビューで現在のコントローラーを取得する適切な方法は何ですか?

4

8 に答える 8

80

$this->params['controller']現在のコントローラを取得するために使用します。

を実行して、debug($this->params)他の使用可能な変数を表示できます。

于 2012-10-24T00:31:45.780 に答える
12

次のようにコントローラーを取得できます。

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 では小文字でした。

于 2014-03-18T17:35:17.927 に答える
9

$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'
于 2013-09-27T09:20:38.300 に答える
3

Cakephp 3.6 以降の場合:

上記の解決策は機能しますが、非推奨の警告が表示され、cakephp 4 では機能しません。そのため、次のコードを使用してコントローラー名を取得することをお勧めします。ビューページとコントローラーでも機能します。

$this->request->getParam('controller')
于 2018-11-22T12:32:44.153 に答える
2

電流を取得するには、

  • コントローラ:$this->params['controller']
  • アクション:$this->params['action']
  • 引数:$this->params['pass']
于 2013-09-10T05:43:20.483 に答える