Order 'Contain' Model in CakePHP 3.x

Isengo picture Isengo · Jul 5, 2016 · Viewed 11.9k times · Source

I have multiple Things in AnotherThing now I am trying to order them in my edit action in my AnotherThing Controller - I can access the Things just fine in my edit, but I want to sort them differently (not over their ID), for example Things.pos

Whats the best practice here? I tried it with

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

But nothing changed. Any idea?

Answer

Isengo picture Isengo · Jul 5, 2016

Overread the Documentation. Sorry!

Anyways, If someone looks for an answer, here it is: http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#sorting-contained-associations

edit:

When loading HasMany and BelongsToMany associations, you can use the sort option to sort the data in those associations:

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