我正在实施搜索,将搜索表单发送到某个操作。一切都按预期工作,但提交后的网址不是非常友好,包含不良信息。它将整个请求查询数组显示为查询字符串。我有一个带有名为' album-search'的fieldset元素的表单。
以下是我现在收到的网址:
http://hostname/music_organizer/public/albums/page/1?album-search[term]=art&csrf=12b6065ab7ea428f02ad36a9cc363752-d96a14c1c7f1f2961112014a1e200e03&search=Search
这是我想要的网址:
http://hostname/music_organizer/public/albums/page/1?term=art
我试图在动作中设置查询字符串,如下所示:
public function searchAction(){
//code
$this->getRequest()->getQuery()->set('term', $term);
//code
return $viewModel;
}
但没有运气, 提前致谢
答案 0 :(得分:0)
我认为你当前的渲染形式应该是这样的
<form method="get" action="...">
<input name="term">
<input type="hidden" name="csrf" value="...">
<input type="submit" name="" value="Search">
<form>
删除提交按钮
创建时不要指定提交按钮名称
删除CSRF元素
如果您不在查询字符串中需要csrf元素,则将其从视图页面中删除。但是这个csrf标签对于避免跨站点请求伪造攻击非常有用。
- SJ