2017-05-01 50 views
1

我正在尋找一個where查詢中的哪裏查詢。如何在laravel中正確嵌入where子句?

我希望它總是檢查類型是%Accu%。

$products = Product::where('type','LIKE', '%Accu%') 
      ->where('beschrijving', 'LIKE','%'. $searchquery .'%') 
      ->where('artikelcode','LIKE','%' . $searchquery . '%') 
      ->where('prijs','LIKE','%' . $searchquery . '%') 
      ->get(); 

我想:

$products = Product::where('type','LIKE', '%Accu%', function($query) use ($searchquery) { 
      $query->where('beschrijving', 'LIKE','%'. $searchquery .'%')->orWhere('artikelcode','LIKE','%' . $searchquery . '%')->orWherewhere('prijs','LIKE','%' . $searchquery . '%')->get(); 
     })->get(); 

任何幫助表示讚賞

+0

什麼錯誤? –

+0

返回封閉不能被轉換爲字符串 – Rubberduck1337106092

+2

你是否嘗試從嵌套函數中刪除get()? –

回答

1

築巢需要Closure回調傳遞給where條件的功能。您可以通過以下方式實現此功能:

$products = Product::where('type','LIKE', '%Accu%') 
    ->where(function($query) use ($searchquery) { 
     $query->where('beschrijving', 'LIKE','%'. $searchquery .'%') 
      ->orWhere('artikelcode','LIKE','%' . $searchquery . '%') 
      ->orWherewhere('prijs','LIKE','%' . $searchquery . '%'); 
    })->get(); 
+0

這工作謝謝。 – Rubberduck1337106092