Cakephp2系でViewからビューしたいあれこれ

Cakephp2系でViewファイルから各項目へのアクセス

( Cakephp2.7 準拠)

※paramsのところをrequestにしても同じ。

@ http://example.com/user_settings/add_profile
<?php
// app/UserSettings/add_profile.ctp

// コントローラー
echo $this->name // 'UserSettings'

echo $this->params['controller'] // 'user_settings' (アクセスしたurlに依存)

// アクション
// どちらも 'add_profile'  (アクセスしたurlに依存)
echo $this->action ;
echo $this->params['action']; 

// 現在のurl
$this->params['url'] // 'user_settings/add_profile'

// 現在のパス
$this->params['here'] // '/user_settings/add_profile'

// POSTでわたされたデータ
$this->params->data;

// GETでわたされたデータ
$this->params->query;


// $this->setでセットされた変数一覧
echo $this->viewVars; 

余談 コントローラー名とアクション名の処理について

Cakephp2ではurlにするときに

  • コントローラー名はUpperCamelでもlower_snake でも有効
  • アクション名はlower_snakeでもUpper_snake (!?) でも有効

なので、"アクセスしたurlに依存"と書いたところは表記揺れが生じる。
文字列処理するならばInfrectorクラスなどを使って整形した方が良い

<?php
echo Inflector::camelize('upper_camel')  // 'UpperCamel'

https://book.cakephp.org/2.0/ja/core-utility-libraries/inflector.html

余談 2

上のはヘルパーからも同様に呼び出せる。

よいヘルパーライフを。