2013-08-26 7 views
1

Я только что испек просто приложение CakePHP, и я пытаюсь настроить, как страницы разбиты на страницы. У меня есть это действие в контроллере:

public function index() { 
    $this->Recipe->recursive = 0; 
    $this->set('recipes', $this->Recipe->paginate()); 
} 

Это прекрасно работает с разбиением по страницам по умолчанию. Я пытаюсь настроить количество возвращаемых строк и их порядок, используя свойство класса называется $paginate в том же контроллере:

public $paginate = array(
    'limit' => 1, 
    'order' => array(
     'Recipe.title' => 'asc' 
    ) 
); 

Однако это не берет вообще никакого эффекта. Результаты по-прежнему имеют ограничение по умолчанию и порядок сортировки. Я также попытался создать $this->paginate в своем действии, но это, кажется, игнорируются также:

public function index() { 
    $this->paginate = array(
     'limit' => 1, 
     'order' => array(
      'Recipe.title' => 'asc' 
     ) 
    ); 
    $this->set('recipes', $this->Paginator->paginate()); 
} 

Что может быть причиной Cake игнорировать варианты нумерации страниц я устанавливаю? Может быть, это что-то напугало, когда вы испекли приложение, о котором я не знаю?

+0

Что ваша точная версия CakePHP? – burzum

ответ

2

Попробуйте

public function index() { 
    $this->Paginator->settings = array(
     'limit' => 1, 
     'order' => array(
      'Recipe.title' => 'asc' 
     ) 
    ); 
    $this->set('recipes', $this->Paginator->paginate()); 
} 
+0

Это работает, хотя я не понимаю, почему. Есть ли способ сделать это так, как это указано в документах CakePHP, и иметь глобальную настройку разбивки на страницы для всего моего контроллера? –

+0

$ this-> Paginator-> установил значение по умолчанию в файле beforeFilter() вашего контроллера. $ this-> paginate все равно должен работать по соображениям обратной совместимости. Какая ваша точная версия CakePHP? И да, похоже, что руководство не обновлено. – burzum

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