CakePHPのページネーション処理で検索条件が想定どおりに反映されない
phpの初心者です。
events,events_tags,tagsというテーブルを用意して特定のタグを持っているイベント一覧を取得しています。
以下cakephpのコントローラーの記述になります。
//$tag_idを持つeventを参照
$options = array('conditions' => array('Events_tag.tag_id' => $tag_id));
$events_tag = $this->Events_tag->find('all', $options);
//$eventsの詳細を全て取得
$events = array();
for ($i=0; $i<count($events_tag); $i++) {
$options = array('conditions' => array('Event.id' => $events_tag[$i]['Events_tag']['event_id']));
$events[$i] = $this->Event->find('first', $options);
}
//ページネーション&ソーティング
$this->paginate = array('limit' => 20, 'order' => 'Event.ja_openhour asc', 'paramType' => 'querystring');
$events = $this->paginate('Event');
$this->set('events', $events);
最後から2行目の
$events = $this->paginate('Event');
の記述の前後で$eventsをデバッグすると:
前-> $tag_idを持つ$events一覧、
後-> 全ての$events一覧
となってしまうのですが、$events = $this->paginate('Event')で上書きをしてしまっているのでしょうか?もしそうだとしたらそうならずにページネーションを実装させたいのですが、どなたかご教授御願い致します。