Things
に複数のAnotherThing
があります。現在、AnotherThing Controller
の編集アクションでそれらを注文しようとしています-編集でThings
に問題なくアクセスできます、ただし、Things.pos
など、別の方法で(IDではなく)並べ替えたい
ここでのベストプラクティスは何ですか?でやってみました
public $hasMany = array(
'Thing' => array(
'order' => 'Thing.pos DESC'
)
);
しかし、何も変わりませんでした。何か案が?
ドキュメントを読み直してください。ごめんなさい!
とにかく、誰かが答えを探すなら、ここにあります: http://book.cakephp.org/3.0/en/orm/retrieveing-data-and-resultsets.html#sorting-contained-associations ==
編集:
HasManyおよびBelongsToManyアソシエーションをロードする場合、sortオプションを使用して、これらのアソシエーションのデータをソートできます。
$query->contain([ 'Comments' => [ 'sort' => ['Comment.created' => 'DESC'] ] ]);
関連するテーブルでいくつかのカスタムFinderメソッドを定義している場合は、それらをcontain()内で使用できます。あなたの場合、あなたは以下のようにこれを解決することができます:
$query->contain([
'Comments' => function ($q) {
return $q->order(['created'=>'DESC']);
}
]);