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

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

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

структура таблицы выглядит следующим образом

Classes table

Bookings table

Users table

and the error im getting enter image description here

and this is my query введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 21 июня 2020

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

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

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

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

0 голосов
/ 21 июня 2020

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

 $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

Спасибо

...