Zend framework2 从操作zf2更改url
我正在执行搜索,并向某个操作发送搜索表单。一切正常,但提交后的url不是很友好,并且包含不需要的信息。它将整个请求查询数组显示为查询字符串。我有一个表单,它有一个名为“album search”的字段集元素 以下是我现在获得的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
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。我建议把它作为一个新问题。