Как выбрать записи через, где отношение имеет условие?

Приветствую, прочитал документацию, но нужного так и не нашел.
Есть 2 таблицы: Первая имеет ссылку на вторую.
Example (type_id | int:255) -> Types (id | int:255, name | string)
Нужно вытащить все записи из Example где type_id равно id из таблицы типов, где name = 'example'.
То есть в таблице типов ищем по имени 'example', у него будет id == 3, например. И уже Example ищет по type_id == 3.
Сам вопрос состоит как сделать это используя модель Example и её отношения.

Example::where('types', function ($query) {
            $query->select('id')
                ->from(with(new Type())->getTable())
                ->where('name', 'пример');
        })->get();


То есть в данном случае можно описать это таким образом. Но хотелось бы найти красивый вариант с отношением.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fernus
@Fernus
Техник - Механик :)
// types - это отношение один ко многим

$rs = Example::whereHas('types', function($q) {
    $q->where('name', 'пример');
})->get();


Документация с примерами
Ответ написан
Ваш ответ на вопрос

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

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