2012-05-14 1 views
1

Я хочу получить несколько паганистов на одном шаблоне. Я запрашиваю 2 разных модели для разбивки на страницы в двух разных местах файла файла шаблона. Как вы уже догадались, если я нажму следующую страницу одной из двух страниц, обе модели получат значения следующей страницы. Я сделал достаточно исследований и попробовал различные решения, доступные в Интернете, но никто из них не работал. Возможно, я использовал их правильно.Задайте номер страницы в подкатегории cakephp

Я выяснил, что если я смогу установить страницу не статически, я могу заставить ее сработать.

Я хочу, чтобы установить его как

'страница' => 1

Я знаю, что мы можем установить его так. Но если есть в парах URL как

...../страница: 2/....

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

Thankyou

ответ

8

2 Предложение

Во-первых, вы можете переписать номер страницы в параметрах URL, как этот

$this->request->params['named']['page'] = YOUR_FAVORITE_INTEGER; 

Проблема с этим в том, что URL на странице будет по-прежнему иметь установленное значение :page, поэтому ...

Другой подход для перенаправления на одно и то же действие контроллера, но с другим номером страницы (или без номера страницы, если хотите).

$this->redirect(array('action' => 'whatever', 'page' => YOUR_FAVORITE_INTEGER)); 

Вот документы на строительство переадресовывает, в случае, если им нужно: http://api.cakephp.org/class/router#method-Routerurl

1

Еще лучше и проще, я использовал это и работал в Cake 1.3. Не уверен, что если он будет работать на 2.х

В контроллере:

$this->paginator['page']= YOUR_FAVORITE_INTEGER; 

Нет обнаружены проблемы, до сих пор.

+0

Просто нужно было сделать это для 2.x теперь: $ this-> Paginator-> settings ['page'] = YOUR_FAVORITE_INTEGER; –

1

Попробуйте добавить:

$this->Paginator->settings['Model1']['page']=YourFavInteger; 
$this->Paginator->settings['Model2']['page']=YourFavInteger; 

$this->Paginator->paginate('Model1'); 
$this->Paginator->paginate('Model2'); 

к контроллеру.