如何在laravel中正确嵌套where子句?

时间:2017-05-01 10:17:32

标签: php laravel

我希望在where查询中嵌套where 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();

感谢任何帮助

1 个答案:

答案 0 :(得分:2)

对于嵌套,您需要将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();