Имейте функцию обратного вызова formatResults, которая добавляет поле "пользовательский расчет" в запись сущностей, возвращенную из запроса модели в моем Cakephp.Я хотел бы отсортировать по этому полю и использовать это на страницах, возможно ли это?
Пока что я не могу этого сделать, потому что разбивка на страницы ограничивает выборку записей и, следовательно, сортируются только записи, меньшие, чем предел разбивки на страницы, а не весь набор результатов ...
Текущий код:
$owners = $this->Owners->find('all');
$owners->formatResults(function (\Cake\Collection\CollectionInterface $owners) {
$owners = $owners->map(function ($entity) {
$entity->random = rand(0,1);
return $entity;
});
return $owners->sortBy(function ($item){
return $item->random;
},SORT_DESC);
});
Это работает, как и ожидалось:
$owners->toArray();
Это не:
$owners = $this->paginate($owners);
$owners->toArray();
Главным образом, потому что его "обработка обратного вызова" только первые 10 записей, я хотел быобработать весь набор результатов.