Zend框架得到Request() - > getQuery()不会在localhost上带来查询字符串

时间:2010-09-17 07:33:34

标签: zend-framework request query-string

我有以下代码,它在实时网站上运行正常,但在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]

我想知道我是否可以选择这个作为公认的答案..: - )

2 个答案:

答案 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');