Есть ли способ одного чтения данных из нескольких таблиц, связанных с помощью нескольких предложений where?

У меня есть три таблицы, а именно классы, бронирования и пользователи. Я хочу читать одобренные бронирования пользователей.

но это дает мне ошибку: столбец не найден, хотя все столбцы там

структура таблицы следующая

и ошибка, которую я получаю

и это мой запрос

2 ответа

Решение

Вы можете показать мне свои модели? Есть ли причина, по которой вы не используете отношения?

Вам не хватает магии красноречия

Использование hasMany для вашей модели курсов и ownTo для вашей модели бронирования решит вашу проблему.

https://laravel.com/docs/7.x/eloquent-relationships

Мне удалось решить эту проблему с помощью laravel Join из документации Laravel. Запрос выглядит следующим образом и работает так, как я ожидал.

 $myCourses = Classes::join('bookings', 'classes.id', '=', 'bookings.course_id')
        ->select('classes.*')
        ->where('bookings.customer_id', '=', auth()->user()->id)
        ->where('bookings.status', '=', 'Approved')
        ->get();

Просматривал документы laravel на их сайте и наткнулся на это. Ссылка на источник решения https://laravel.com/docs/4.2/queries

Спасибо

Другие вопросы по тегам