从3和表2个的外键
问题描述:
我有一个表service
包含<PK> id
和<FK> plate_number
选择。从3和表2个的外键
然后我有一个表vehicles
,其中包含<PK> plate_number
和其他不重要的列。
下表是包含<FK> service_id
和<FK> part_id
的结合表part_fix
。
最后一个是part
,其列<PK> id
,name
,price
。
我正在使用Laravel查询构建器,但那不是那么重要,以防万一有人知道如何使用它,查询生成器中的解决方案对我来说会更好,但简单的postgresql查询就好了。
我想select
从表service
,我想在一个表<PK> id
,<PK> plate_number
显示,并使用绑定表,我要分配部分每个service
。我有绑定表,因为有多对多的关系(一个修复/服务可以有很多部分,另外一个部分可以用在autoshop的许多修复中)。
我希望我解释得很好,如果不是,请询问。
答
你可能想这样做
Service::with(['vehicle','parts'])->find($serviceid);
与人际关系上的服务类中定义类似
public function vehicle() {
return $this->belongsTo(Vehicle::class);
}
public function parts() {
return $this->belongsToMany(Part::class, 'part_fix', 'part_id', 'service_id');
}
这应该允许您加载你是什么后
echo $service->vehicle->plate_number;
foreach($service->parts as $part) {
echo $part->name
}
想到这一点,您可能不想使用plate_number作为您的主键,因为根据管辖权,车牌号码可以在其他车辆上重复使用。 – Jason