这些是模型:
使用数据字段检查
id, 'inspector_id', 'room_id', 'housekeeper_id', 'comments', 'signature'
带有数据字段的InspectionDetail
'checklist_id', 'inspectionable_id', 'inspectionable_type', 'inspection_id',
'observation', 'snapshot','inspection_status','work_order','attende_on','attended_by'
这里的inspection_id指的是inspections.id,inspectionable_id指的是bedrooms.id或bathrooms.id或corridor.id等,inspection_type是可以是这些模型的模型类型 卧室,浴室,走廊,厨房等等。这些都是模特。
在我的InspectionDetail中的应该是哪些片段将检索到那个确切的 带数据的模型
如果我说
$detail = $inspection->detail()->first();
$type = $detail->type();// this should return any one of Bedroom, Bathroom, Corridor etc.
这里有一个检查有多个细节,每个细节都有一种类型(卧室,浴室,走廊等)。
我无法弄清楚如何通过改变卧室,浴室,走廊等之一来获得细节对象的类型。
答案 0 :(得分:1)
您需要在InspectionDetail中创建关系映射方法:
public function inspectionable()
{
return $this->morphTo('inspectionable');
}
然后你可以像任何其他关系一样检索相关对象(类卧室,浴室等):
$room = $detail->inspectionable;