エレメント(例:/Elements/job/sub_search_box.ctp)の中で、下記のように使う。これでエレメントを表示する前に、コントローラーにアクセスして必要な情報を取ってきてくれる。
<?php $list = $this->requestAction('/jobs/get_list') ?>
上記の/jobs/get_listのコントローラーの内容は、下記のような感じになる。 通常のURLとしてアクセスされると困るので、$this->request->param['requested']が空の場合はありませんエラーを出している。
public function get_list(){ if (empty($this->request->params['requested'])) { throw new ForbiddenException(); } $list = $this->get_lists_array($this->name_list); $list['time_option'] = $this->get_job_time_option(); return $list; }
エレメントを表示するビューは下記のようになる。 エレメントを表示する度にコントローラにアクセスすると重くなるので、キャッシュを使っている。下記のように使える。
<?php echo $this->element('jobs/sub_search_box', array('cache' => '+10 hour')); ?>