URL не работает должным образом в Zend Framework - PullRequest
0 голосов
/ 21 апреля 2009

При вызове URL следующего типа в методе init контроллера я получаю два разных результата на двух разных серверах:

http://address.com/index/action/?start=2009-04-18&end=2009-04-21

Звонок

echo $ _GET ['start'];

Дает мне 2009-04-18 на одном сервере и вообще ничего на другом сервере.

Однако, и это странная часть, добавив

Выход ();

после этого оператора echo заставляет 2009-04-18 отображаться на обоих серверах, как и ожидалось.

К вашему сведению, сброс параметров запроса показывает, что они доступны на одном сервере, но не доступны на другом ... если вы не вызовите exit ();

Что в мире может быть причиной этого? Я понимаю, что это не способ структурировать URL-адреса в ZF, но это способ, которым это делается в данном конкретном проекте. Может быть, какой-то особый маршрут поможет? STill не объясняет выход (); бит, вызывающий отображение переменной $ _GET.

РЕДАКТИРОВАТЬ: Чтобы обойти это сейчас, я написал собственный маршрут, однако? в URL все портит. Включая его, кажется, что переменная GET является принудительной и переопределяет мой пользовательский маршрут. Оставив все как есть, все работает отлично на маршруте, который я создал, но у меня нет возможности удалить это? Кто-нибудь знает, как сделать так, чтобы пользовательский маршрут имел приоритет над переменными GET, которые заполняются при этом? там?

Ответы [ 2 ]

1 голос
/ 01 сентября 2009

Проверьте ваш файл .htaccess на сломанном сервере. http://framework.zend.com/manual/en/zend.controller.router.html

1 голос
/ 23 апреля 2009

Я предполагаю, что $ _GET ['start'] на самом деле работает на обоих серверах, проблема в том, что ничего не показывает, что есть проблема ПОСЛЕ этого утверждения, но вывод эха все еще находится в буфере вывода. Если вы выполните команду flush () после эха, вы сможете увидеть вывод, а затем все последующие сбойные слова будут терпеть крах, но вы увидите дату.

Я не уверен, что вы делаете с маршрутизацией (недостаточно кода для просмотра), но ваша строка запроса (все после?) Полностью отличается от ваших маршрутов. Если вы собираетесь использовать маршрутизацию, вам нужно включить mod_rewrite, используя предоставленный файл .htaccess на странице быстрого запуска ZF.

Я думаю, что вы захотите создать свой собственный Маршрутизатор (а не просто Маршрут), а затем использовать параметры $ _GET для маршрутизации к нужному контроллеру, а также необходимые параметры. Маршрутизатор по умолчанию не делает сложные вещи с QueryString, по крайней мере, не в последний раз, когда я проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...