У меня есть следующий код в CakePHP.Числовая сортировка в CakePHP paginator
<th> <?php echo $this->Paginator->sort('standard_id', 'Standard'); ?></th>
<th> <?php echo $this->Paginator->sort('id'); ?> </th>
<th> <?php echo $this->Paginator->sort('title'); ?> </th>
Мои данные standard_id
, как это:
- 3-
- 4-
- 10th
- ... и т.д.
Мои пробл em is standard_id
не отсортировано должным образом, оно рассматривает его как строку. Я хочу применить числовую сортировку.
Любая идея?
Я предполагаю, что ваши данные представляют собой сочетание числа и символа, поэтому он будет рассматривать только как строку. Можете ли вы указать, какую версию CakePHp вы используете? –
Я использую cakephp-2.4.7 –
По моим сведениям, сортировка по умолчанию дает приведенный выше результат. В PHP существует возможность изменить поведение сортировки по умолчанию для буквенно-цифровых строк с помощью natsort(), т.е. Natural sort. http://php.net/manual/en/function.natsort.php. Поскольку сортировка CakePHP применяется к запросу MYSQL, вы можете попробовать другой вариант. Пожалуйста, прочитайте, как Natural Sort реализована для CakePHP и MYSQL. http://gobagel.blogspot.in/2010/10/cakephp-12-natural-alphanumeric-sorts.html –