我刚刚开始使用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',
),
),
),
),
任何想法我做错了什么?
答案 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');
我认为这会有效..