laravel清理空查询变量

时间:2014-09-18 20:13:10

标签: laravel

我想从控制器中的网址中删除空查询变量。我的网址是/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'));
}

2 个答案:

答案 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);
}