我有一个与车辆关联的 RepairRequest 模型。
class RepairRequest extends \Eloquent {
public function vehicle() {
return $this->belongsTo('Vehicle');
}
}
class Vehicle extends \Eloquent {
public function requests() {
return $this->hasMany('RepairRequest');
}
}
我想获取与给定 RepairRequest 关联的车辆的所有 RepairRequests,所以我这样做了
return RepairRequests::find($id)->vehicle->requests;
这很好用。
但是,RepairRequests 有 RepairItems:
// RepairRequest class
public function repairItems() {
return $this->hasMany('RepairItem', 'request_id');
}
// RepairItem class
public function request() {
return $this->belongsTo('RepairRequest', 'request_id');
}
我也想回来,所以我做了
return RepairRequests::find($id)->vehicle->requests->with('repairItems');
但我得到以下异常:
Call to undefined method Illuminate\Database\Eloquent\Collection::with()
我该如何编写才能使返回的 json 包含 RepairRequest json 中的 RepairItems?
最佳答案
在集合上使用load
方法加载相关模型:
return RepairRequests::find($id)->vehicle->requests->load('repairItems');
基本相同:
$repairRequest = RepairRequests::with('vehicle.requests.repairItems')->find($id);
return $repairRequest->vehicle->requests;
关于php - Laravel 获取相关模型的相关模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553196/