- 244 名前:nobodyさん mailto:sage [2008/10/20(月) 23:34:15 ID:???]
- >基本的に、データの「件数」がわからないとページング出来ない。
CakePHPはよくできてる。 データの件数ってのは、データ用のSQL文のうち条件は同じでselectするものが、 フィールド名の変わりにcount(*)になっただけ。 そこの部分(フィールド名の変わりにcount(*))への変換を 自動でやってくれるから、データ用のSQLに相当する部分のみを書けばいい。 また、データ用のSQLにlimitを主導で追加する必要もない。これも自動で追加される。 つまり、「データを取ってくるSQL」を書いて「ペジネーション」処理を使うだけで内部的に、 「データを取ってくるSQL」には、自動的にlimitが追加されて発行され 「データを取ってくるSQL」には、自動的に件数を取得するcountに変更される。(当たり前だがこっちにはlimitはつかない) (もちろんSQL直書きではなくモデルの操作だが) 最適化って話なら、データ件数を取得する関数をオーバーライドできる。(上のやつはデフォルト動作) こういう目的でオーバーライドされるために存在するメソッドが用意されている。
|

|