Расширенная сортировка в CakePHP - PullRequest
0 голосов
/ 29 июля 2011

Мне нужно изменить систему, встроенную в cakePHP, чтобы изменить порядок сортировки с алфавитного в поле на алфавитный в том же поле, но минус первый символ (при этом все еще отображается все поле).

По существу, если бы они имели .. a1, a3, b2, b4 порядок сортировки был бы a1, b2, a3, b4

Код, который в настоящее время сортируется на основе find(), есть ли способ заставить этот тип сортировки выполнить его или мне нужно написать какой-то тип пользовательского запроса?

1 Ответ

2 голосов
/ 29 июля 2011

хорошо .. у вас есть два варианта:

Сортировка с использованием php после запроса. Вы можете использовать usort . Но это не сработает, если вы хотите разбить результаты на страницы

Или вы можете изменить запрос поиска на что-то вроде этого:

$this->MyModel->find('all',array(... ,'order'=>'SUBSTRING(MyTable.sortfield,2) ASC'));

Идея состоит в том, чтобы сгенерировать запрос вроде:

SELECT * FROM `MyTable` WHERE ... ORDER BY SUBSTRING(sortfield,2);

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...