ZF2 fromQuery()返回一个空数组

时间:2013-03-01 04:42:24

标签: php nginx zend-framework2

我刚刚开始使用Zend框架2,这似乎是一个简单的任务,但由于某种原因它不起作用。

我正在尝试简单地获取查询参数:controller/action?name=something

我尝试过使用:

$this->params()->fromQuery()
$this->plugin('params')->fromQuery();

我认为两者都是相同的,但是当我设置参数时,两者都返回空数组。

我的路线如下:

        'users' => array(
            'type' => 'Zend\Mvc\Router\Http\Literal',
            'options' => array(
                'route'    => '/users/search',
                'defaults' => array(
                    'controller' => 'Module\Controller\Users',
                    'action'     => 'search',
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'query' => array(
                        'type' => 'Query',
                    ),
                ),
            ),   
        ),

任何想法我做错了什么?

3 个答案:

答案 0 :(得分:2)

我想你想使用Params插件listed on this page

你可以尝试(我从插件的代码中提取这个。$ param应该是null,实际上是:

$this->getController()->getRequest()->getQuery($param, $default)->toArray();

fromQuery()只是上面的一个包装器(在line 88 here上看到它),尽管如此,如果这对你不起作用,这可能不会(除非问题是插件未被加载)或正确实例化):

$this->params()->fromQuery();

答案 1 :(得分:2)

我想,你的nginx配置有问题。

只需将$is_args$args添加到location /部分:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

然后重新启动nginx sudo /etc/init.d/nginx restart

答案 2 :(得分:0)

$this->_request->getParam('name');

我认为这会有效..