2014-09-18 48 views
0

我想從我的控制器中的url中刪除空查詢變量。我的網址是/search?qi=yoga&q=,注意q是空的。有時候氣將是空的。我怎樣才能刪除這些?看起來像一個簡單的問題,但我似乎無法找到一個優雅的解決方案。laravel清理空查詢變量

function search() { 
    $qi = Request::get('qi'); 
    $q = Request::get('q')); 
    $results = getResults($qi, $q); 

    return View::make('search.results', compact('results')); 
} 

回答

1

你可以做的是,在接下來的請求,但你必須重定向::刷新()或用乾淨的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;}) 
+0

Javascript來救援!我知道這一定很簡單。謝謝Antonio。 – dwenaus 2014-09-18 20:52:39

0

我的建議是:

function search() 
{ 
    $search = array_filter(Request::all()); // or only(..)/except(..) 

    $results = getResults($search); 
}