2013-10-01 57 views
0

我有一個在數據庫中做的研究。並不總是我會使用所有的參數。用戶可能想要研究一個名稱,但不是地址或其他方式。如何在Laravel中使用各種可選參數組裝查詢?

我試過使用advanced wheres甚至unions,但似乎沒有工作。他們都給我一個SQL錯誤「一般錯誤:1221不正確的使用UNION和ORDER BY」。

這裏有一段代碼,我已經試過

$city_name = ($city_name != null) ? DB::table('cities')->where('name', 'LIKE', "%$city_name%") : DB::table('cities'); 
$state = ($state_id != '--') ? DB::table('cities')->where('state_id', '=', $state_id) : DB::table('cities'); 

$cities = DB::table('cities')->union($city_name)->union($state)->orderBy('name')->get(); 

但它給我上述錯誤。

我真正想要做的就是選擇什麼參數放入查詢中,甚至可以「隨時」組裝它。 有誰知道該怎麼做?

如果我不能讓自己清楚,請讓我知道在評論...

回答

2

我認爲你需要somethink這樣的:

$query = DB::table('cities'); 

if ($city_name != null) 
{ 
    $query->where('name', 'LIKE', "%$city_name%"); 
} 

if ($state_id != '--') 
{ 
    $query->where('state_id', '=', $state_id); 
} 

$cities = $query->orderBy('name')->get(); 
+0

謝謝......這是exacly我需要! ......但是現在,我在Elloquent中做了幾乎相同的事情,甚至更好! –

相關問題