Как запросить три таблицы в Laravel Eloquent

Я создаю веб-сайт событий с laravel, моя проблема в том, что я хочу запросить таблицу событий в БД, а также таблицу организаторов и таблицу билетов, таблица событий предоставит идентификатор, который я буду использовать для запроса остальных таблиц ( билеты и организаторы), который связан с идентификатором events_id, который есть как в билетах, так и в организаторах

ниже код

    $events = Events::orderBy('id', 'desc')
    ->leftJoin('organizers', 'events.id', '=', 'organizers.events_id')
    ->leftJoin('tickets', 'events.id', '=', 'tickets.events_id')
    ->paginate(env('EventPag'));

вот код для модели событий

public function organizers(){
    return $this->hasMany('App\Organizers');
}
public function tickets(){
    return $this->hasMany('App\Tickets');
}

вот код модели органайзеров

public function events(){
    return $this->belongsTo('App\Events');
}

это дало мне эту ошибку

Освещение \ База данных \ QueryException (42000)

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1055 'obj.events.name' не входит в GROUP BY (SQL: выберите события. * Из events left join organizers on _6 _._ 7_ = _8 _._ 9_ left join tickets on events .id = _13 _._ 14_ группировать по _15 _._ 16_ порядок по _17 _._ 18_ desc limit 6)

как я могу исправить эту ошибку?


person Eloike David    schedule 12.08.2019    source источник


Ответы (1)


Если вы правильно используете красноречие

Просто исправь свой контроллер

$events = Events::orderBy('id', 'desc')
    ->with(['organizers','events'])
    ->paginate(env('EventPag'));

Для получения дополнительной информации перейдите по этой ссылке: Laravel - Eloquent Relations.

person Thiago Valente    schedule 12.08.2019
comment
Я хочу, чтобы для каждого мероприятия загружались все билеты и организаторы, но с вашим решением загружается только один билет и органайзер. - person Eloike David; 12.08.2019