Zend Framework Изменить параметр в маршруте на том же месте? - PullRequest
0 голосов
/ 27 июля 2010

Я не уверен, как это исправить, или Ват - лучший способ приблизиться к этому. Также не смог найти достаточно информации, чтобы правильно сориентировать меня (возможно, мой поиск - отстой ..)

В любом случае, это моя проблема:

Я определил маршрут в моем файле начальной загрузки:

 protected function _initRoutes()
    {
        $router = $this->frontController->getRouter();
        $router->removeDefaultRoutes();
        $router->addRoute(
            'delete',
            new Zend_Controller_Router_Route('/:controller/:action/:id/',
            array('controller' => ':controller',
                'action' => ':action',
                'id' => ':id',
                )
            )
        );
    }

Это прекрасно работает для моего обновления и удаления действий. Теперь я добавил нумерацию страниц на индексную страницу. Разбивка на страницы ожидает параметр страницы. Поскольку я не установил это в своем маршруте, он не может пройти его, поэтому моя нумерация страниц не работает (как при переключении между результатами).

Я понимаю это. Но я хочу, чтобы на странице индекса параметр id не был необходим, и замените его параметром страницы.

Попытка другого маршрута с заменой id на страницу не сработала.

Есть ли хороший способ решить эту проблему в начальной загрузке или это лучший способ проверить действие и, в зависимости от действия, индексировать или обновить / удалить, определить маршрут. Лучшее место, чем плагин?

Любой совет или советы с благодарностью!

1 Ответ

1 голос
/ 28 июля 2010

Работая над другим аспектом приложения, я вернулся к той же проблеме.Я решил это, указав маршруты гораздо больше.

Сначала я удалил правило $router->removeDefaultRoutes();.

И затем вместо (который не работал):

$router->addRoute(
            'crud',
            new Zend_Controller_Router_Route('/:controller/:action/:id', array('controller' => ':controller', 'action' => ':action', 'id' => ':id'))
        );
        $router->addRoute(
            'pagination',
            new Zend_Controller_Router_Route('/:controller/:action/:page', array('controller' => ':controller', 'action' => ':action', 'page' => ':page'))
        );

Я сейчас использую это:

    $router->addRoute(
        'crud',
        new Zend_Controller_Router_Route('/:controller/:action/:id', array('controller' => ':controller', 'action' => ':action', 'id' => ':id'))
    );
    $router->addRoute(
        'pagination',
        new Zend_Controller_Router_Route('/:controller/index/:page', array('controller' => ':controller', 'action' => 'index', 'page' => ':page'))
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...