Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
$listPromotialOffers = $object::with(['rooms.eventCalendar' => function($query) {
$query->where('valuePercent', '!=', 0)->groupBy('date');
}])
->whereHas('rooms.eventCalendar', function($query) use($presentDay, $endDay) {
$query->where('reservedRoomId', '=', 0)
->where('reservationId', '=', 0)
->where('date', '>=', $presentDay);
})
->has('rooms.eventCalendar', '>=', 1)
->groupBy('objects.id')
->limit(4)
->get();
Делаю через вложенные связи и пишу условия что бы брало лишь те записи в которых значение поля не равно 0, но метод не отрабатывает, он просто возвращает пустоту и метод has так же не влияет ни на что и показывает пустую коллекцию. Что можете подсказать?
Не в сети
Если так будет работать, значит ошибку найдешь в своем коде.
Если не будет работать, значит нет записей в бд
$listPromotialOffers = $object::with(['rooms.eventCalendar' => function($query) {
$query->where('valuePercent', '!=', 0);
}])
->limit(4)
->get();
Не в сети
Не сработало. Записи в базе есть, выводит просто пустую коллекцию по связи
Не в сети
Да я так и сделал, скопировал то что написал cobovo, вывело по связям комнаты, а в самих комнатах связи с пустыми event_calendar, хотя если они пустые не должны браться и во все эти записи.
Вот связь
public function eventCalendar(){
return $this->hasMany('App\Models\EventCalendar', 'typeRoomId');
} в модели Room связь на event_calendar.
Структура таблицы
id
price
valuePercent
typeRoomId
date
могу сбросить в скайп код
Не в сети
Страницы 1