2011-08-01 21 views
2

私はCakePHP 1.3から2.0への移行を進めており、CakePHPがdefault.ctpレイアウトのAjax応答を提供しているという点で、私のajax.ctpではありません。CakePHP 2.0が私のAjaxレイアウトを使用していません

ajaxレイアウトを動作させるために特に必要なことはありますか?現在はView/Layouts/ajax.ctpにあり、私のdefault.ctpは問題ありません。

+2

あなたのメソッドに '$ this-> layout = 'ajax''があると思いますか? – Ross

+0

いいえ、私は1.3 /でそれを必要としませんでした。 beforeFilterを '$ this-> request-> is( 'ajax')'にチェックインする必要がありますか? – Dunhamzzz

+0

それはうまくいくはずです(私はあなたが1.3でそれを必要としなかったと言って驚いています;私はそれがajaxレイアウトで動作する必要があると仮定しました)。 beforeFilterはかなりまともなアプローチでなければなりません。 – Ross

答えて

3

コントローラまたはapp_controllerでbeforeRenderのレイアウトを指定しましたか?もしそうなら、簡単なハックは$this->autoLayout = false;です。あなたの行動の最後に$this->render('view_name','ajax');と呼んでください。

おそらくあなたはRequestHandlerを使用しています(私はAjaxリクエストには自動的にajaxレイアウトを使用すると聞きましたが、ほとんど使用しないので分かりません)。

関連する問題