我正在使用laravel构建事件网站,我的问题是我想查询数据库中的事件表以及组织者表和票证表,事件表将提供ID,我将使用该ID查询其余的与票证和组织者中的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');
}
它给了我这个错误
Illuminate \ Database \ QueryException(42000)
SQLSTATE [42000]:语法错误或访问冲突:1055'obj.events.name'不在GROUP BY中(SQL:select events。*来自
events
,在{ {1}}。organizers
=events
。id
在organizers
上左加入events_id
。tickets
=events
。{{ 1}}按id
分组。tickets
按events_id
排序。events
描述限制6)
如何纠正该错误?
答案 0 :(得分:0)
如果您正确使用口才
只需修复您的进入控制器
$events = Events::orderBy('id', 'desc')
->with(['organizers','events'])
->paginate(env('EventPag'));
有关更多信息,请访问以下链接:Laravel - Eloquent relationship。