GetRequest () -> getQuery () фреймворка Zend Framework не доставит строку запроса на локальный хост - PullRequest
5 голосов
/ 17 сентября 2010

У меня есть следующий код, который отлично работает на живом сайте, но не на localhost.

$status = $this->getRequest()->getQuery('status');

У меня есть такой URL:

http://localhost:888//questions/ask?status=10

Я напечатал значениестатуса, который всегда равен нулю.Я новичок в Zend Framework и не смог найти решение этой проблемы в сети, выглядит странно для меня.Какие-нибудь мысли?Спасибо.

[FIXED]

Я ошибся RewriteRule, который вызвал проблему.Был нежелательный '?'после index.php в строке RewriteRule.Это была моя ошибка, я добавил это, потому что другие фреймворки, такие как пользователь CodeIgniter '?'в RewriteRules.Исправленная строка RewriteRule:

RewriteRule ^(.*)$ /index.php/$1 [L]

Интересно, смогу ли я выбрать это как принятый ответ ..: -)

Ответы [ 2 ]

5 голосов
/ 17 сентября 2010

Я обычно использую это

$status = $this->getRequest()->getParam('status');

// or
$status = $this->getRequest()->getParams();

Я предполагаю, что у вас есть Действие Контролера Вопросов.
Вот документация о запросе Zend

2 голосов
/ 22 марта 2013

Для тех, кто ищет решение для ZF2 - посмотрите на этот пост, он мне очень помог.Он даже включает ссылку на феноменальный плагин, чтобы сделать это проще (как минимум, в понимании маршрутов / запросов / параметров и т. Д.) *

Получение параметров $ _GET из маршрута в ZendFramework 2

Также в этом посте ТАК сообщение

Как получить доступ к параметрам маршрута, публикации, получения и т. Д. В Zend Framework 2

Короче говоря, tho -

    $this->getRequest()->getRequest('name', 'default');
    $this->getEvent()->getRouteMatch()->getParam('name', 'default');
...