CakePHP 3 - заказ на данные не работает

Я использую CakePHP 3.x и пытаюсь отсортировать свои данные по содержащимся в них данным, которые мне нужны, чтобы мой paginator мог сортировать по ним.

У меня есть следующие варианты для моего paginator:

public function getEventSignupsOptionsForPagination($id)
{
    $options = array(
        'limit' => 30,
        'conditions' => array(
            'event_id' => $id
        ),
        'order' => array(
            'signup_date' => 'asc'
        ),
        'contain' => array(
            'Users',
            'Events.Instances.DkpLists.DkpListEntries.Users'
        ),
        'sortWhitelist' => array(
            'Users.username',
            'Events.Instances.DkpLists.DkpListEntries.current',
            'message',
            'status',
            'signup_date'
        )
    );

    return $options;
}

Этот набор параметров возвращает правильные данные. Но когда я пытаюсь сортировать по нему, выдает ошибку.

Я использую следующую строку для сортировки на мой взгляд:

<?php echo $this->Paginator->sort('Events.Instances.DkpLists.DkpListEntries.current', 'DKP'); ?>

Это работает, пока я не нажму на него, а затем я получаю следующую ошибку:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Events.Instances' in 'order clause' 

Я не понимаю, почему это идет не так, потому что он может получить правильные данные, но не может сортировать по ним.

1 ответ

Пожалуйста, используйте как,

$ this-> Pages-> find ('all', [
'содержать' => ['Rows' => [
'condition' => ['Rows.parent_id' => 0],
'queryBuilder' => function ($ q) {
return $ q-> order (['order_number' => 'asc']);
}
]]) -> ToArray();

Другие вопросы по тегам