У меня такой запрос:
SELECT *
FROM `groups`
WHERE `status` = 1
AND `active` != 1
AND (`approved` != 1 OR `approved` IS NULL)
И я пробую это в построителе запросов, но не знаю, как это сделать правильно
Вот мой конструктор запросов:
Group::where([['status', '=', 1], ['active', '!=', 1]])
->where([['approved', '!=', 1]])
->orWhereNull()
->get();






Вы можете попробовать что-то вроде:
$articles = \App\Article::where('foo', 'bar')
->where('color', 'blue')
->orWhere('name', 'like', '%John%')
->whereIn('id', [1, 2, 3, 4, 5])
->get();
Кажется, этого недостаточно, чтобы помочь автору. Если он уже дал вам пример кода, который у него есть, попробуйте поработать над ним и посмотрите, как вы могли бы его улучшить.
Вы должны использовать where с Closure для группировки параметров. https://laravel.com/docs/5.7/queries#parameter-grouping
$data = Group::where(function($query){
$query
->where('approved', '!=', 1)
->orWhereNull('approved');
})
->where('status', 1)
->where('active', '!=', 1)
->get();
Попробуй это
Group::where('status', 1)
->where('active', '!=', 1)
->where(function($query){
$query->where('approved', '!=', 1)
->orWhereNull('approved')
})->get();
используйте where в закрытии в laravel видеть
попробуй это
Group::where('status', 1)->where('active', '!=', 1)->where('approved', '!=', 1)
->orWhere('status', 1)->where('active', '!=', 1)->where('approved', NULL)
->get();
или
$x = Group::where(function($q){
$q->where('approved', '!=', 1)
->orWhereNull('approved')
})
->where('status', 1)->where('active', '!=', 1)
->get();
Возможный дубликат Laravel 5.0 Query Builder - Где с несколькими параметрами