CakePHPのレンダリング結果を受けとる
CakePHP 1.2でコントローラーのアクションのレンダリング結果を受けとりたい場合がありました。そして、画面の表示はしたくない。そこで調べてみたのが以下の結果でした
自動的にレンダリングしない設定
- コントローラーのfunction
- autoRenderをFLASEにする
- レンダリング結果は出力されない
<?php class PostsController extends AppController { function view($id){ $this->Post->id = $id; $post = $this->Post->read(); $this->set('post', $post); $this->autoRender = FALSE; } } ?>
レンダリングを任意の時(タイミング)に行う
- コントローラーのファンクションであるrender()を実行
- 戻り値は、レンダリング結果の内容
<?php class PostsController extends AppController { function view($id){ $this->Post->id = $id; $post = $this->Post->read(); $this->set('post', $post); $this->autoRender = FALSE; $this->output = $this->render(); } } ?>
画面表示をしないで、出力結果を受けとる
- $this->outputには出力される内容が入る
- $this->outputに値があると、$this->autoRenderがFALSEでも出力はされる
- そこで、$this->outputをNULLにすると、出力されない
<?php class PostsController extends AppController { function view($id){ $this->Post->id = $id; $post = $this->Post->read(); $this->set('post', $post); $this->autoRender = FALSE; $this->output = $this->render(); $this->output = NULL; } } ?>
そういえば
本を買って読んでみようかと思ったり、思わなかったり...
- 作者: 安藤祐介,新原雅司,堂園俊郎
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2009/06/27
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 47回
- この商品を含むブログ (12件) を見る