如何查询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。
我正在用 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 joinorganizers
onevents
.id
=organizers
.events_id
left jointickets
onevents
.id
=tickets
.events_id
group byevents
.id
order byevents
.id
desc limit 6)
我该如何纠正这个错误?
如果您eloquent正确使用
只需修复您的控制器
$events = Events::orderBy('id', 'desc')
->with(['organizers','events'])
->paginate(env('EventPag'));
有关更多信息,请关注此 link:Laravel - Eloquent relationship。