我想从控制器中的网址中删除空查询变量。我的网址是/search?qi=yoga&q=
,注意q是空的。有时候气是空的。我怎样才能删除这些?看起来像一个简单的问题,但我似乎无法找到一个优雅的解决方案。
function search() {
$qi = Request::get('qi');
$q = Request::get('q'));
$results = getResults($qi, $q);
return View::make('search.results', compact('results'));
}
答案 0 :(得分:1)
您可以在下一个请求中执行此操作,但您必须使用干净的网址重定向:: refresh()或Redirect :: to($ url),例如
$items = Redirect::query();
$items = $this->removeEmptyItems($items); /// you'll have to create this method!
return Redirect::route('your.current.route', $items);
如您所见,这将清理您的网址,但需要新的请求。
但这看起来就像你当前的请求中的内容,我担心Laravel无法为您更改浏览器中的URL。如果这是表单提交查询,Javascript可以帮助您防止发送这些空查询:
$('form').submit(function(){$('input[value=]',this).remove();return true;})
答案 1 :(得分:0)
我建议:
function search()
{
$search = array_filter(Request::all()); // or only(..) / except(..)
$results = getResults($search);
}