Zend Framework 1 Paginator изменить URL

Я хотел бы изменить URL с http://localhost/domain/index/index/page/1 в http://localhost/domain/page/1,
Я уже пытался изменить маршруты, однако у меня есть некоторые ошибки.
Это моя часть контроллера:

$page=$this->_getParam('page',1);
$paginator = Zend_Paginator::factory($images->fetchAll($images->select()->order('id ASC')));
$paginator->setItemCountPerPage(24);
$paginator->setCurrentPageNumber($page);
$this->view->paginator=$paginator;

Просмотр части:

<?php
foreach($this->paginator as $record){
echo $record['name'];
}
?>

<?= $this->paginationControl($this->paginator, 'Sliding', 'pagination.phtml'); ?>

Как вы можете видеть, я использую стандартный файл pagination.phtml. Большое спасибо за вашу помощь.

1

Решение

Вы можете создавать маршруты, как указано ниже:

routes.flexi.type = "Zend_Controller_Router_Route"routes.flexi.route = "custom-text/:page"routes.flexi.defaults.module = "core"routes.flexi.defaults.controller = "index"routes.flexi.defaults.action = "index"routes.flexi.defaults.page = 1
routes.flexi.reqs.page = \d+

Это будет работать для ниже URL:

http://localhost/custom-text/2
http://localhost/custom-text/3

По умолчанию будет страница 1 с URL ниже:

http://localhost/custom-text

Редактировать:

Создайте routes.ini в application/configs/ каталог

В Bootstrap.php вам нужно создать экземпляры маршрутов следующим образом:

protected function _initRouter(){
$routes = new Zend_Config_Ini('/application/configs/routes.ini', APPLICATION_ENV); //change path according to your project
$front = Zend_Controller_Front::getInstance();
$front->getRouter()->addConfig($routes, 'routes');
}
1

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

В качестве дополнения к ответу @ s-rupali и для тех, кто не знает ее структуру для разбивки на страницы, другим способом было бы использовать эту структуру в маршрутах .ini:

   $route = new Zend_Controller_Router_Route(
'custom-text/:page',
array(
'controller' => 'index',
'action'     => 'index',
'page'     => 1
)
);

$router->addRoute('new_pagination', $route);
0

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