Используйте вызов orWhere (), чтобы выполнить условие или в новом предложении where.
Post::where('views', '>', 0)
->orWhere('created_at', '>=', Carbon::now()->subDay())
->orderBy('created_at', 'desc')
->get();
Если у вас есть несколько условий where, может быть предпочтительнее, если вы находитесь внутри, где следует избегать приоритет условий для предоставления вам неисправных логов c.
Представьте себе, что добавление дополнительных логов c возможно только для данной команды.
Post::where('team_id', 1)
->where('views', '>', 0)
->orWhere('created_at', '>=', Carbon::now()->subDay())
Это выберет заданная команда с просмотром более 0 или чем-то созданным за последние 24 часа. Но часто вы хотите team_id в обоих условиях. Для этого его нужно заключить в другое условие where.
Post::where(function ($query) {
$query->where('views', '>', 0)
$query->orWhere('created_at', '>=', Carbon::now()->subDay())
});
Что обернет вас SQL условиями в круглые скобки, что намного надежнее и менее подвержено ошибкам.
where (views >= 0 or created_at >= '2020-01-28 00:00:00')