2017-05-01 21 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