2013-05-17 3 views
1

Что я пытаюсь сделать здесь, это поддерживать переменную 42 во всех URL-адресах страницы. Я хочу, чтобы мой URL, чтобы перейти от этогоКак сохранить переменную в URL-адресе, настроенном в cakephp?

/exams/take/42/page:2 

к этому

/exams/take/42/items/2 

Опять же, число 42 является variable..and номер 2 страница number..Thanks.

UPDATE:

routes.php 
Router::connect('/examinations/take/:id/page/:page', 
array('controller' => 'examinations', 'action' => 'take'), 
array(
    'pass' => array('id', 'page'), 
    'id' => '[0-9]+', 
    'page' => '[0-9]+' 
    ) 
); 

в представлении/принять

$this->Paginator->options(array('url' => $this->passedArgs)); 

AppController.php

public function beforeFilter(){ 
    if (isset($this->request->params['page'])) { 
     $this->request->params['named']['page'] =       $this->request->params['page']; 
    } 
} 

ив попробовал это ..но сгенерированный URL то же самое,/экзамены/take/42/page: 2, когда я нажимаю следующую и предыдущую ссылки.

ответ

1

да, вы можете сделать это с помощью пользовательской маршрутизации. Для получения дополнительной undrestanding вы можете увидеть CakePHP руководство для управления пользовательской маршрутизации в пагинацией

http://book.cakephp.org/2.0/en/development/routing.html

ниже будет ваш

например

И добавив этот маршрут:

Router::connect('/:id/page/:page', 
    array('controller' => 'examinations', 'action' => 'take'), 
    array(
     'pass' => array('id', 'page'), 
     'id' => '[0-9]+', 
     'page' => '[0-9]+' 
     ) 
); 

и я не работает, Вы можете обратиться link

+0

он не возвращает URL, что я want.The сгенерированный URL это/экзамены/принять/42/страница: 2. Я хочу это,/экзамены/взять/42/items/2 – user2356747

+0

Я обновил свой ответ, пытаясь попробовать и дайте мне знать. полезно ли вам – liyakat

+0

, он возвращает тот же url ... – user2356747

2

вы определить пользовательские маршруты:

http://book.cakephp.org/2.0/en/development/routing.html

пример, как показано ниже :

Router::connect(
     '/exams/take/:id/items/:number', 
     array('controller' => 'exams', 'action' => 'take'), 
     array('pass' => array('id', 'number')) 
    ); 

Также вы можете получить более подробную информацию ниже URL попробуйте следующее: http://www.sakic.net/blog/changing-cakephp-pagination-urls

+0

Вы пробовали мой код, пожалуйста, дайте мне знать, что он работает на вас? Рад помочь вам больше ... –

+0

да ive попробовал это..и он генерирует url exams/take/42/page: 2.Thanks заранее – user2356747

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