2013-04-08 3 views
1

Я пытаюсь использовать следующее:findall игнорирует параметр порядка?

$this->Chapter->recursive=1; 
    $chaps = $this->Chapter->find('all', array(
     'order'=> array('sequence_number' => 'ASC') 
    )); 
    $this->set('chapters', $chaps); 

получить всю мою главы по возрастающему порядку, но CakePHP, кажется, игнорируя параметр «порядок». Я считаю, что у меня есть синтаксис правильный (на основании вида-источника: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#creating-custom-find-types, в котором говорится следующее должно работать:

public function index() { 
    $articles = $this->Article->find('available', array(
     'order' => array('created' => 'desc') 
    )); 
} 

). SQL для таблицы выглядит так:

CREATE TABLE chapters (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    sequence_number INT UNSIGNED, 
    title VARCHAR(50) 
); 

и я не получаю никаких синтаксисов или ошибок во время выполнения. Однако SQL генерируется торт на самом деле получить главу записей:

SELECT `Chapter`.`id`, `Chapter`.`sequence_number`, `Chapter`.`title` 
FROM `Tutorial`.`chapters` AS `Chapter` WHERE 1 = 1 

Очевидно, что я делаю что-то неправильно, но я не знаю, что это такое.

Как обходиться Я рад предоставить заказную модель на Модели. Так как я обычно хочу, чтобы получить главы по порядковому номеру Я в порядке с добавлением этой модели:

public $order = 'Chapter.sequence_number ASC'; 

После того, как я делаю, что торт создает

SELECT `Chapter`.`id`, `Chapter`.`sequence_number`, `Chapter`.`title` 
FROM `Tutorial`.`chapters` AS `Chapter` WHERE 1 = 1 
ORDER BY `Chapter`.`sequence_number` ASC 

ответ

2

Что делать, если вы пытаетесь что-то вроде этого, вместо :

$chaps = $this->Chapter->find('all', array(
    'order' => array('Chapter.sequence_number ASC') 
)); 

Основное отличие заключается в этой части: Chapter.sequence_number ASC

+0

@BarryChapman Это опция, если OP выбирает не использовать пользовательское условие 'find'. Форматирование для этого на самом деле происходит из [верхней части той же книги здесь] (http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find) ... – summea

+1

Да, Вы абсолютно правы. Я не понял этот вопрос, у меня создалось впечатление, что пользователь пытается использовать пользовательский тип поиска, но в ретроспективе я не думаю, что он был. ++ –

+0

@BarryChapman Надеюсь, я правильно прочитал вопрос; когда я читал ваше сообщение раньше, я вернулся, чтобы дважды проверить .... Хороший вопрос о пользовательских методах поиска раньше; OP все еще может захотеть использовать их в будущем для чего-то ... – summea

Смежные вопросы