Я только начал изучать PHP, cakePHP и не могу отсортировать свою страницу.
Мой контроллер выглядит следующим образом;
public $helpers = array('Html', 'Form', 'Flash', 'Paginator');
public function index()
{
$this->Post->recursive = 0;
$this->paginate = array ('limit' => 5);
$this->set('posts', $this->paginate());
$this->set('posts', $this->Post->find('all'));
echo $this->Paginator->sort('id');
}
Paginate работает нормально, но для сортировки я получаю фатальную ошибку следующим образом
Вызов неопределенного метода PaginatorComponent :: sort ()
также не смог найти ничего, связанного с ошибкой. Это может быть очень просто, но это поможет мне узнать больше, и я хочу узнать больше! Любая помощь будет оценена.
Заранее спасибо!
Обновить:
Я добавил следующий код в моем представлении индекса,
<th><?php echo $paginator->sort('Id', 'id'); ?></th>
Но теперь я получаю следующую ошибку
Вызов функции-члена sort () в null
Я считаю, что вы пытаетесь установить значения по умолчанию для нумерации страниц. Правильный способ сделать это определяется в вашем контроллере:
public $paginate = array(
'order' => array(
'Post.id' => 'desc'
)
);
или в действии:
$this->paginate = array (
'limit' => 5,
'order' => array(
'Post.id' => 'desc'
)
);
Ваше действие индекса должно выглядеть так:
public function index() {
$this->Post->recursive = 0;
$this->paginate = array (
'limit' => 5,
'order' => array(
'Post.id' => 'desc'
)
);
$this->Paginator->settings = $this->paginate;
$this->set('posts', $this->paginate());
}
На ваш взгляд, правильный синтаксис для CakePHP 2.x
<?php echo $this->Paginator->sort('id'); ?>
В моем индексе ()
$this->paginate = array ('limit' => 5);
позже в моем представлении индекса я использовал
<?php echo $this->Paginator->sort('id','Id'); ?>
синтаксис: this-> Paginator-> sort (‘имя столбца’, ‘имя метки’);
Вместо обычного HTML-кода. И это сработало!