Итак, у меня есть проект, в котором я работаю над тем, чтобы вы могли добавить «пул» путем регистрации и входа в систему или заполнения печатного формата, а администратор добавил его вручную.По результатам я хочу иметь возможность сортировки, используя имя пользователя, адрес электронной почты и идентификатор партнера.
У меня есть этот код:
$this->paginate = [
'sortWhitelist' => [
'id', 'Users.username', 'Users.email', 'payed', 'Users.partner', 'created'
]
];
$pools = $this->Pools->find('all', [
'contain' => [
'Users'
]
])->formatResults(function (\Cake\Collection\CollectionInterface $results) {
return $results->map(function ($row) {
if($row['user_id'] === -1) {
$name = $this->Names->find('all', [
'conditions' => [
'pool_id' => $row['id']
]
])->first();
$row['user']['username'] = $name->name;
$row['user']['email'] = $name->email;
$row['user']['partner'] = $name->partner_id;
}
return $row;
});
});
$pools = $this->paginate($pools);
Итак, что я делаю в форматеResults() метод: если пользователь связан с пользователем -1 (который является одним из печатных форматов), найдите в другой таблице имя, адрес электронной почты и партнера, для которого он зарегистрирован, и измените пустые ассоциации на правильные, чтобы яможете отобразить его на странице.Результаты работают нормально, и я получаю правильный текст и данные, которые мне нужны.
Дело в том, что он неправильно сортирует измененные строки.В любом случае, я могу этого добиться?