ビューをXmlで出力したい場合の注意

$Model->findの結果をxml形式で出力したい場合

セットアップ

// routes.php
Router::parseExtensions('xml');

~/:controller/:action.xmlにアクセスすると
/views/コントローラ名/xml/アクション名.ctpのviewが使われる。

コントローラ

// これがないとViewが見つからないエラーになる。
var $components = array('RequestHandler');

// アクション
public function xmlTest() {
    // 通常通りにビューに渡したいデータをセットする
    $this->set('data', $this->TestModel->find('all'));
}

ビューテンプレート

/views/layouts/xml/default.ctp

<?php header("content-type: text/xml"); ?>
<?php echo $xml->header(); ?>
<?php echo $content_for_layout; ?>

ビュー実装

<hoges>
<?php echo $xml->serialize($data);?>
</hoges>


var $components = array('RequestHandler');を忘れずに。