CakePHP3でhasManyの取得件数を制限する

標準

Posts hasMany Comments の関係で、最新のCommentsを3件だけ紐付けて取得したい場合を考える。

1. containに書く方法

再利用を考えなければ以下のように、containでクエリを書けばよい。

2. カスタムファインダーを定義する方法

カスタムファインダーを定義することで、再利用しやすくなる。

CommentsTable に findLatest3 というカスタムファインダーを定義する

containでfinderを指定して呼び出す。

3. カスタムファインダー+専用アソシエーションを定義する方法

Postsに最新のCommentsを3件取得するアソシエーションを別途定義すると、さらに再利用しやすくなる。

containではLatestCommentsを呼び出す。

コメントを残す

Page optimized by WP Minify WordPress Plugin