【发布时间】:2020-06-23 12:01:14
【问题描述】:
我有以下数据库结构:
- 表车辆:id、car_id、plane_id
- 表格汽车:id、型号...
- 表平面:id、型号...
当向Vehicles表添加新记录时,如果是Car,则设置car_id,而plane_id 将留空,反之亦然,我知道这是一个糟糕的结构,但它是遗留的,我无法更改。
所以我想在 Vehicle 模型中定义一个关系,它可以根据哪个键为空,car_id 或 plane_id,检索 Car 对象或 Plane 对象>。顺便说一句,我已经定义了两个关系,分别检索 Car 对象和 Plane 对象。
public function carVehicle()
{
return $this->belongsTo(Car::class, 'car_id');
}
public function planeVehicle()
{
return $this->belongsTo(Plane::class, 'plane_id');
}
【问题讨论】:
-
那么,您遇到了什么错误?不用保存
car_id,plane_id,你可以通过多态关系来管理它。
标签: laravel eloquent lumen eloquent-relationship