@cubaPro

Как правильно сформулировать условия выборки для связующей модели?

Всем добрый вечер. Использую Laravel 5.2. Необходимо вывести события из определенного города.
Имеются 3 модели: Event, Place, City
со следующими отношениями:
b9fb7ceefb2c44d8be20a3bbc5f8ad6e.png
Отношения в моделях:
Event
public function place()
{
    return $this->belongsTo('App\Models\Place');
}

Place
public function city()
{
    return $this->belongsTo('App\Models\City');
}

Модель Event имеет метод, в которой я пытаюсь вывести События из указанного города.
public function getExpectedEvents()
{
$events = Event::expected()->with([
        'cover' => function ($query) {
            $query->where('is_cover', 1);
        },
        'place.city' => function ($query) {
            // например так
            $query->where('slug', 'название города');
        }
    ])->get();
}

Можно ли это реализовать не используя Query Builder и есть ли возможность использовать заготовки запросов ( к прим. scopeCover ) в функции замыкания
чтобы не повторять
->with(['cover' => function ($query) {
        $query->where('is_cover', 1);
    },

Благодарю вас за помощь.
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
AmdY
@AmdY
PHP и прочие вебштучки
У вас какой-то йода-стайл. Есть слаг города, значит пляшем с этой стороны
City::where('slug', 'название города')->with('place.events')->get();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы