CakePHPで楽天WEBサービスを使う(Modelにパラメータを渡す)

前回、とりあえずはデータ取得(Model)から表示(View)までを作ってみましたが、APIのパラメータをコントローラから渡すようにしてみました。


  • モデル


< ?php
class Item extends AppModel {

var $name = "Item";

function findAll($conditions = array()) {

//APIのリクエストURI
$req = 'http://api.rakuten.co.jp/rws/1.12/rest?';
uses('Xml');

$req .= http_build_query($conditions);
$xml = new XML($req);
$xml_array = Set::reverse($xml);

return $xml_array['Response']['Body']['ItemSearch']['Items']['Item'];
}
}

?>



  • コントローラ


< ?php
class ItemsController extends AppController {

var $name = 'Items';
var $uses = 'Item';

var $conditions = array();

//デフォルト商品表示
function index(){

//リクエスト用パラメータ
$conditions = array(
'developerId' => DEV_ID,
'affiliateId' => AFF_ID,
'operation' => 'ItemSearch',
'version' => '2008-09-01',
'keyword' => (キーワード),
);

$data = $this->Item->findAll($conditions);
$this->set('items', $data);
}
}

?>

こんな感じでできました。


CakePHPガイドブック