Разбивка на страницы без порядка по умолчанию

#php #sorting #cakephp #pagination

#php #сортировка #cakephp #разбивка на страницы

Вопрос:

У меня есть код ниже:

 $firm_ids = array(81, 96, 18, 5, 105);  
$this->paginate = array(  
    'conditions' => array('Firm.id' => $firm_ids),  
    'limit' => 10,  
);

$this->set('firms', $this->paginate('Firm'));  
  

В результатах у меня есть порядок в:

 5, 18, 81, 95, 105 
  

Как мне отключить порядок по умолчанию, если я хочу упорядочить как начальный порядок массива?

Ответ №1:

Я нашел обходной путь на каком-то форуме, посмотрим, работает ли это:

 $this->paginate = array(
    'conditions' => array('Firm.id' => $firm_ids),
    'limit' => 10,
    'order' => array(
        'FIELD(Firm.id,' . implode(',',$firm_ids) . ')'
    )
);
  

Ответ №2:

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

Порядок по полю

Комментарии:

1. вопрос в том, чтобы отключить упорядочивание

2. не существует такой вещи, как отключение упорядочивания. либо записи возвращаются так, как указано в предложении ORDER BY, либо по умолчанию. поведение по умолчанию отличается в зависимости от реализации, это может быть порядок вставки записей или по первичному ключу.