Почему я получаю ‘Вызов неопределенного метода PaginatorComponent :: sort ()’ в CakePHP 2.x?

Я только начал изучать 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

1

Решение

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

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'); ?>
2

Другие решения

В моем индексе ()

$this->paginate = array ('limit' => 5);

позже в моем представлении индекса я использовал

<?php echo $this->Paginator->sort('id','Id'); ?>

синтаксис: this-> Paginator-> sort (‘имя столбца’, ‘имя метки’);

Вместо обычного HTML-кода. И это сработало!

0

По вопросам рекламы [email protected]