2016-07-05 8 views
6

私は、複数のThingsAnotherThingでは今、私は私の編集アクションでそれらを注文しようとしています持っている私のAnotherThing Controller - 私は私の編集にThingsうまくにアクセスすることができますが、私はソートしたいですそれらは異なって(ID以外で)、たとえばThings.pos注文CakePHPの3.xではモデル「を含む」

ここでベストプラクティスは何ですか?私はそれを試しました

public $hasMany = array(
     'Thing' => array(
      'order' => 'Thing.pos DESC' 
     ) 
    ); 

何も変更されていません。何か案が?

答えて

14

ドキュメントを上書きします。ごめんなさい!

はとにかく、誰かが答えを探している場合、ここにある: http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#sorting-contained-associations

編集:

hasManyのとBelongsToMany関連付けをロードするとき、あなたはソートする 並べ替えオプションを使用することができますそれらの関連のデータ:

$query->contain([ 
    'Comments' => [ 
     'sort' => ['Comment.created' => 'DESC'] 
    ] 
]); 
1

関連するテーブルでカスタムファインダメソッドを定義した場合は、contains()の内部で使用できます。あなたの場合、以下のようにこれを解決することができます:

$query->contain([ 
     'Comments' => function ($q) { 
      return $q->order(['created'=>'DESC']); 
     } 
    ]); 
関連する問題