Open3

LaravelのクエリでWhereNotしたくない?

あおいくんあおいくん
SELECT *
FROM users
WHERE users.id > 1
AND NOT (
  users.email LIKE '%@gmail.com'
  AND users.age >= 18
)

みたいなクエリをLaravelで作りたいときの書き方がわからん🤷‍♂️

あおいくんあおいくん
User::query()
->where('id', '>', 1)
->where(function ($query) {
  $query->whereLike('email', '%@gmail.com')
    ->where('age', '>=', 18);
}, null, null, 'AND NOT')
->get();

こいつがアンサー、ブラックサンダーでした

あおいくんあおいくん

LaravelのWhereの第4引数が頭に引っ付けるやつを司ってるからそこをいじってやるといい感じになるってことらしい🙌