2011年8月23日

Yii Framework: scopes()を通してのページネーション

例として user_id で絞った条件でのページネーションを試してみました。

まずモデル。getAll() の CPagination では a() を通したカウントを取得し、findAll() で a() と b() を通したデータを取得して、配列で return しています。 SQLは以下のような感じ。
SELECT COUNT(*) FROM `hoge` `t` WHERE t.user_id = 1
SELECT t.fuga, t.piyo FROM `hoge` `t` WHERE t.user_id = :user_id ORDER BY t.id DESC LIMIT 30

コントローラでは、モデルの getAll() で取得した配列を $pages, $models にわけて、ビューに渡しています。 ビュー
scopes() は上手く使うといろいろ楽ができそうです。

参考リンク



0 件のコメント:

コメントを投稿