[CakePHP2] モデルのデフォルトオーダーはアソシエーション時には効かない

アソシエーション時の下位モデルにデフォルトオーダーを設定しても反映されないのでメモしておきます。

DBの構成は以下の通りです。

—–

usersテーブル

カラム名 データ型 外部キー
id unsigned int
name varchar(255)

commentsテーブル

カラム名 データ型 外部キー
id unsigned int
user_id unsigned int users.id
comment text
order unsigned int

—–

Commentモデルで

のように指定すると、

でComment.orderの昇順でレコードを取得できます。

しかし、Userモデルに

のようにアソシエーションを設定して、

をしてもComment.orderの昇順にはなりません。

アソシエーションの下位モデルでオーダーを設定するには
Userモデルに

のようにオーダーを指定する必要があります。

何も指定しなければCommentのデフォルトオーダーが有効にならないかなーという淡い期待をしていたんですがダメでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*