我正在使用laravel
多态关系。
cartable model:
public function objectable()
{
return $this->morphTo();
}
说明模型:
public function cartable()
{
return $this->morphMany('PTA_OIMS\Cartable', 'objectable');
}
报告模型:
public function reports()
{
return $this->morphMany('PTA_OIMS\Cartable', 'objectable');
}
我的指令表有额外的相关表,名为instruction_logs。
但是在报告表中,这种关系不存在。 当我的对象报告时,此查询有错误。因为reports.report_logs不存在。
$data = Cartable::where('id', '=', $cartableID)
->with('objectable')
->with('objectable.objectable_logs.attachment') //line error
->with('box.position')
->with('box.assign.staff')
->first();
return $data;
如果objectable_logs不存在,如何处理查询跳过行错误?
答案 0 :(得分:2)
$data = Cartable::with([
'objectable',
'objectable.objectable_logs.attachment',
'box.position',
'box.assign.staff'
])->find($cartableID);
return $data;
如果attachment
是objectable_logs
表中的列,则应该是:
$data = Cartable::with([
'objectable',
'objectable.objectable_logs:objectable_id,attachment',
'box.position',
'box.assign.staff'
])->find($cartableID);
return $data;