我有几种型号,
Vehicle
,VehiclePreparation
,RepairOrders
关系是
Vehicle
有一个VehiclePreparation
Vehicle
有很多RepairOrders
VehiclePreparation
有很多RepairOrders
VehiclePreparation
属于Vehicle
RepairOrders
属于Vehicle
RepairOrders
属于VehiclePreparation
VehiclePreparation
有很多RepairOrders
public function repair_orders()
{
if($this->exists) {
return $this->hasMany(RepairOrder::class)
->whereDate('repair_orders.created_at', '>=', $this->created_at);
}
return $this->hasMany(RepairOrder::class);
}
注意:我在这里对关系键进行了伪编码。他们在内部工作,所以我有信心这不是我的问题。
我的问题是这个;当我从VehiclePreparationController
加载视图并逐步执行代码时,if($this->exists)
条件非常有效,并且完全符合我的要求。当我尝试在VehicleController
show方法上显示此信息时,出现了我的问题。
public function show(Vehicle $vehicle)
{
$vehicle->load([
'vehicle_preparation',
'vehicle_preparation.repair_orders'
]);
return view('vehicle.show', compact('vehicle'));
}
此代码运行时,我逐步完成了VehiclePreparation
模型,并且exists
属性始终返回false。这在我的vehicle.show页面上显示了错误的维修单。
所以我确认的是,当我直接加载模型时,exists
属性的效果很好,但是当我通过关系加载时,它不是吗?我很沮丧任何帮助将不胜感激。