Zend Framework - необходимо получить доступ к параметру GET из представления - PullRequest
11 голосов
/ 18 февраля 2010

Привет, ребята - я использую Zend Framework, и мне нужно создать URL на мой взгляд. Обычно в обычном php-коде я просто получаю переменную GET, используя глобальный $ _GET. Однако с Zend я устанавливаю его для очистки URI так:

? Ас = список и фильтр = работает и страница = 2

Похоже Индекс / акр / список / фильтр / работа / страница / 2

На мой взгляд, я устанавливаю ссылки cs таким образом, что если фильтр переменных GET равен работает, то цвет этой ссылки будет другим, и он будет указывать на ту же страницу, на которую ссылаются только так:

Индекс / акр / список / фильтр / дополнительные / страница / 2

И, похоже, у меня есть ряд других ссылок, все из которых имеют только одно значение GET - как мне это настроить - я использую Zend Framework ...

Ответы [ 4 ]

32 голосов
/ 18 февраля 2010

Чтобы получить доступ к переменной запроса непосредственно в представлении, вы можете сделать:

Zend_Controller_Front::getInstance()->getRequest()->getParam('key');

Но, как говорили другие, это не очень хорошая идея.Это может быть проще, но рассмотрим другие варианты:

  • установить переменную вида в контроллере
  • написать помощник вида, который извлекает переменную из объекта запроса
5 голосов
/ 18 февраля 2010

Если вам нужен доступ к параметру GET из представления, я думаю, что вы делаете это неправильно.

Я предлагаю вам настроить маршрут со всеми вашими параметрами, а затем использовать $this->url с вашей точки зрения, чтобы отобразить действительный и правильный URL.

Для получения дополнительной информации, прочитайте следующее сообщение в блоге (нет, я не автор): http://naneau.nl/2007/07/08/use-the-url-view-helper-please/

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

Если вы хотите быть «ленивым», вы можете установить параметр просмотра с вашего контроллера, выполнив $this->view->param = $this->_getParam('param').После этого вы можете получить доступ к param, выполнив echo $this->param;.Однако я не рекомендую это.

1 голос
/ 18 февраля 2010

Вы можете передать его из контроллера: $this->view->page = $this->_getParam('page');.

Сноска. Я согласен с @ alexn.

1 голос
/ 18 февраля 2010

Доступ к объекту запроса является одним из распространенных способов - сохранить его в реестре.

  1. http://osdir.com/ml/php.zend.framework.mvc/2007-08/msg00158.html
  2. http://www.zfforums.com/zend-framework-components-13/model-view-controller-mvc-21/how-access-request-object-customizing-layout-view-3349.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...