2014年9月19日金曜日

CakePHPのRequestHandlerを使ってXMLを返すときにルートのノードを"response"から変更したい

決済とか、大企業へのコンテンツ提供なんかでXML (古い形式)でAPIを作成しないといけないシーンで使えるかも

CakePHPのRequestHandler
http://book.cakephp.org/2.0/ja/core-libraries/components/request-handling.html

を使ってXMLを返すときは

配列として _serialize を定義すると XmlView を使っているときにトップレベルの要素として "response" が自動で追加されるという利点があります。もし _serialize に文字列を設定しXmlViewを使っている場合、 ビュー変数が単一のトップレベル要素となっていることを確認して下さい。単一のトップレベル要素が無いとXmlの生成は失敗するでしょう。

になっちゃうらしい。
この"response"を変更したい場合は

 $this->set('_rootNode', 'ranking'); 

と設定すれば、この場合は"ranking"に変更できる。
コード見てたら発見したのでメモ。

0 件のコメント:

コメントを投稿