我有三个表,这是相关的列:
events
id
name
location_id
org_id
locations
id
name
orgs
id
name
这是我的控制器中的查询生成器:
$events = DB::table('events')
->join ('locations', 'events.location_id', '=', 'locations.id')
->join('orgs', 'events.org_id', '=', 'orgs.id')
->select('events.id', 'events.name', 'orgs.name', 'locations.name')
->get();
return response()->json($events);
因此,输出为:
[{"id":"2","name":"HUB 123"}, {"id":"3","name":"HUB Lounge"}]
什么时候应该是:
[{"id":"2","name":"Some cool event","org":"Student Senate","location":"HUB 123"}, {"id":"3","name":"Some other cool event","org":"Some club","location":"HUB Lounge"}]
看起来,由于所有三个表都有一个“名称”列,因此要选择的最后一列将覆盖之前的列。显然这不是我想要的。
有没有一种方法可以在querybuilder中为列赋予一个新名称,类似于普通MySQL中的AS?这能解决我的问题吗?请举例说明您的答案。我不是MySQL专家,而是Laravel的初学者。我只是试图设置一个基本API来与我的实际项目一起使用。
谢谢!
别名列
$events = DB::table('events')
->join ('locations', 'events.location_id', '=', 'locations.id')
->join('orgs', 'events.org_id', '=', 'orgs.id')
->select('events.id', 'events.name as event_name', 'orgs.name as org', 'locations.name as location')
->get();
return response()->json($events);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句