如何查询laraveleloquent中的三个表

How to query three tables in laravel eloquent

我正在用 laravel 构建一个活动网站,我的问题是我想查询数据库中的活动 table 以及组织者 table 和门票 table,事件 table 将提供我将用于查询其余 tables(票证和组织者)的 ID,该 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');
}

它给了我这个错误

Illuminate \ Database \ QueryException (42000)

SQLSTATE[42000]: Syntax error or access violation: 1055 'obj.events.name' isn't in GROUP BY (SQL: select events.* from events left join organizers on events.id = organizers.events_id left join tickets on events.id = tickets.events_id group by events.id order by events.id desc limit 6)

我该如何纠正这个错误?

如果您eloquent正确使用

只需修复您的控制器

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

有关更多信息,请关注此 link:Laravel - Eloquent relationship