2

我刚刚开始使用 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',
                    ),
                ),
            ),   
        ),

任何想法我做错了什么?

4

3 回答 3

2

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

只需添加$is_args$argslocation /部分:

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

并重启nginxsudo /etc/init.d/nginx restart

于 2014-02-11T09:27:54.947 回答
2

我认为您想使用此页面上列出的 Params 插件。

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

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

fromQuery()只是上述内容的包装器(请参见此处的第 88 行),但是如果这对您不起作用,则可能不起作用(除非问题是插件未正确加载或实例化):

$this->params()->fromQuery();
于 2013-03-01T05:04:24.233 回答
0
$this->_request->getParam('name');

我认为这会奏效..

于 2013-03-01T04:46:07.597 回答