我有以下代码,它在实时网站上运行正常,但在localhost上运行不正确。
$status = $this->getRequest()->getQuery('status');
我有这样的网址:
http://localhost:888//questions/ask?status=10
我打印了status的值,它总是为零。我是Zend框架的新手,无法在网上找到解决方案,看起来很奇怪。有什么想法吗? 感谢。
[固定]
我错误的RewriteRule导致了这个问题。有一个不想要的'?'在RewriteRule行中index.php
之后。这是我的错误,我添加了这个,因为其他框架,如CodeIgniter用户'?'在RewriteRules中。更正后的RewriteRule行是:
RewriteRule ^(.*)$ /index.php/$1 [L]
我想知道我是否可以选择这个作为公认的答案..: - )
答案 0 :(得分:5)
我通常使用这个
$status = $this->getRequest()->getParam('status');
// or
$status = $this->getRequest()->getParams();
我假设你有一个问题控制器询问行动 这是documentation about Zend's request
答案 1 :(得分:2)
对于那些寻找ZF2解决方案的人 - 看看这篇文章,帮助我大大提高了。它甚至包括对现象插件的引用,以使这更容易(至少,在理解路线/请求/参数等等...)
Getting $_GET parameters from route in Zend Framework 2
此外,在这篇文章SO帖子
How to access route, post, get etc. parameters in Zend Framework 2
简而言之, -
$this->getRequest()->getRequest('name', 'default');
$this->getEvent()->getRouteMatch()->getParam('name', 'default');