Laravel滔滔不绝多个whereNotIn

时间:2017-12-04 10:38:22

标签: php sql laravel laravel-5 eloquent

我试图在我使用多个whereNotIn数组的地方进行查询。出于某种原因,它们会相互阻塞并忽略其他查询参数。

关于如何解决这个问题的任何线索?

$products = Products::orderBy('id','DESC')
    ->where('status', '=', 4)
    ->whereNotIn('category', $excluded)
    ->whereNotIn('location', ['New York', 'Boston', 'Washington, DC', 'Charlotte'])
    ->take(400)
    ->get();

2 个答案:

答案 0 :(得分:0)

您需要在orWhereNotIn内对条件where进行分组以排除这两种情况,请尝试此操作

$locations = ['New York', 'Boston', 'Washington, DC', 'Charlotte'];
$products = Products::orderBy('id','DESC')
->where('status', '=', 4)
->where(function($q) use ($locations,$excluded) {
    $q->orWhereNotIn('category', $excluded);
    $q->orWhereNotIn('location', $locations);
})
->take(400)
->get();

答案 1 :(得分:0)

$excluded是一个数组吗?如果没有,你可以

->where('category', "<>", $excluded);