2015-09-26 71 views
0

我喜歡這個 -轉換SQL到Laravel查詢生成器有複雜和OR

SELECT * FROM subscribers_lists 
    WHERE Country='Germany' 
    AND (City='Berlin' OR name LIKE '%Mün%'); 

我想將其轉換爲Laravel查詢生成器的查詢的查詢。所以,我所做的是 -

DB::table('Customers') 
    ->where('subscribers_lists.Country', '=', $user_country) 
    ->or_where('subscribers_lists.City', '=', $user_city) 
    ->or_where('subscribers_lists.name', 'like', '%' . $searchParameter . '%'); 

但它不能正常工作。有什麼建議嗎?

感謝您的幫助。

回答

1

您可以使用Closure創建複雜部分。

DB::table('subscribers_lists') 
    ->where('subscribers_lists.Country', '=', $user_country) 
    ->where(function($query) use ($user_city, $searchParameter) { 
     $query->where('subscribers_lists.City', '=', $user_city) 
       ->orWhere('subscribers_lists.name', 'like', '%' . $searchParameter . '%'); 
    }); 

您可以在文檔中閱讀更多關於高級查詢