Zend framework2 从操作zf2更改url

Zend framework2 从操作zf2更改url,zend-framework2,zend-route,Zend Framework2,Zend Route,我正在执行搜索,并向某个操作发送搜索表单。一切正常,但提交后的url不是很友好,并且包含不需要的信息。它将整个请求查询数组显示为查询字符串。我有一个表单,它有一个名为“album search”的字段集元素 以下是我现在获得的url: http://hostname/music_organizer/public/albums/page/1?album-search[term]=art&csrf=12b6065ab7ea428f02ad36a9cc363752-d96a14c1c7f1f2

我正在执行搜索,并向某个操作发送搜索表单。一切正常,但提交后的url不是很友好,并且包含不需要的信息。它将整个请求查询数组显示为查询字符串。我有一个表单,它有一个名为“album search”的字段集元素

以下是我现在获得的url:

http://hostname/music_organizer/public/albums/page/1?album-search[term]=art&csrf=12b6065ab7ea428f02ad36a9cc363752-d96a14c1c7f1f2961112014a1e200e03&search=Search
以下是我想要获取的url:

 http://hostname/music_organizer/public/albums/page/1?term=art
我尝试在操作中设置查询字符串,如下所示:

 public function searchAction(){
    //code
    $this->getRequest()->getQuery()->set('term', $term);
    //code
    return $viewModel;
}
但是运气不好,
提前感谢

我认为您当前的渲染表单应该是这样的

<form method="get" action="...">
 <input name="term">
 <input type="hidden" name="csrf" value="...">
 <input type="submit" name="" value="Search">
<form>

删除提交按钮:
创建提交按钮时,不要指定其名称 移除CSRF元件
如果您在querystring中不需要csrf元素,请将其从视图页面中删除。但是这个csrf标签对于避免跨站点请求伪造攻击非常有用


--SJ

这会解决我现在的问题,但当我的搜索变成高级搜索,并且需要使用fielset和forms对象时,会发生什么情况?@Frank,对不起,我不熟悉fieldset。我建议把它作为一个新问题。