MIGHTY5コンテンツへスキップMIGHTY5インターネットをとりまく色々を語ります。“$this->set(compact())”が素敵☆CakePHP2を美味しく食べたい近代和暦について。$autoRenderでの制御ツイートCakePHP2のhtmlビュー表示制御について自動レンダリング機能の動きとOFF/ONについて現時点で市販のとあるマニュアル本の書き方がだらしなく(そのうえそれくらいしかないorz)、誤解を招く記述なので自分の整理のためにも書きます。コントローラのメンバ変数として指定できる$autoLayoutと$autoRender。この$autoLayoutと$autoRenderは画面表示用テンプレート読み込み動作のOFF/ONをつかさどります。初期状態はどちらも”TURE”が指定されていますので’ON’状態です。この二つのメンバ変数を記述しなければ、初期値(ON)で動作することになります。そのときはどう動くの?例えば/hoge/でページを表示させるつもりであれば、次のようにコントローラーを作りますね。/Controller/ディレクトリ直下にHogeController.phpと名前をつけたファイルを作成し、そのファイル内にindex()アクションを記述した場合、/View/ディレクトリ内に/hoge/ディレクトリを作り、その中にindex.ctpという名前でファイルを配置すれば、そのファイル内に記述した内容が読み込まれます。/View/Layouts/ディレクトリ内にあるdefault.ctpファイルが読み込まれます。?>で出力し表示します。/View/Layouts/default.ctpが無いとか、/Layouts/ディレクトリがない場合はCakePHPのライブラリ内にあるファイルを読み込んで表示するようになっています。この挙動を変更したいレイアウトを使いたくないコントローラ内に次の1行を加えれば、レイアウト表示をOFFできます。false;これで、/View/hoge/index.ctpだけが表示されます。レイアウトを色々と使い分けたい複数ページを制作しカテゴリ毎に色分けしたレイアウトを複数用意して季節が変わったらレイアウトを変更したいなら、レイアウトファイル名を指定するため$layoutを記述して制御します。'hoge';これで/View/Layouts/hoge.ctpを読み込んで来るようになります。$;}とするといいかもしれません。判断分岐はみなさんのセンスでどうぞ。false;こうすることで、レイアウト用またビュー用テンプレートファイルを読み込んでくる処理を止めることができます。特殊な用途でこれを止めて、アクション内で何か処理をさせて終わらせる必要がある場合もあるでしょう(画面遷移を振り分けるためだけでリダイレクトさせるとことか)。画面表示の必要が無い場合、この記述を加えてテンプレート読み込みを止めます。