Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 27.01.2018 19:49:02

Не срабатывает условия для метода with() Laravel 5.4

$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 так же не влияет ни на что и показывает пустую коллекцию. Что можете подсказать?

Не в сети

#2 28.01.2018 03:55:25

Re: Не срабатывает условия для метода with() Laravel 5.4

Если так будет работать, значит ошибку найдешь в своем коде.
Если не будет работать, значит нет записей в бд

$listPromotialOffers = $object::with(['rooms.eventCalendar' => function($query) {
            $query->where('valuePercent', '!=', 0);
        }])
            ->limit(4)
            ->get();

Не в сети

#3 28.01.2018 11:16:02

Re: Не срабатывает условия для метода with() Laravel 5.4

Не сработало. Записи в базе есть, выводит просто пустую коллекцию по связи

Не в сети

#4 28.01.2018 12:39:29

Re: Не срабатывает условия для метода with() Laravel 5.4

Что именно значит «не сработало»? Ты скопипастил код covobo, не меняя его и запрос все равно взял все «eventCalendar»? Если так, то покажи пожалуйста структуру таблицы event_calendars и как ты объявил связь «eventCalendar».

Не в сети

#5 28.01.2018 22:56:47

Re: Не срабатывает условия для метода with() Laravel 5.4

Да я так и сделал, скопировал то что написал cobovo, вывело по связям комнаты, а в самих комнатах связи с пустыми event_calendar, хотя если они пустые не должны браться и во все эти записи.

Вот связь
public function eventCalendar(){
        return $this->hasMany('App\Models\EventCalendar', 'typeRoomId');
    } в модели Room связь на event_calendar.

Структура таблицы
id
price
valuePercent
typeRoomId
date

могу сбросить в скайп код

Не в сети

Подвал раздела