doutangshuan6473 2016-10-06 07:26
浏览 24
已采纳

多模型的多态关系和模型保持的检索类型

These are the models:

Inspection with data fields

id, 'inspector_id', 'room_id', 'housekeeper_id', 'comments', 'signature'

InspectionDetail with data fields

'checklist_id', 'inspectionable_id', 'inspectionable_type', 'inspection_id',
    'observation', 'snapshot','inspection_status','work_order','attende_on','attended_by'

here inspection_id refers to inspections.id, inspectionable_id refers to bedrooms.id or bathrooms.id or corridor.id and so on, inspection_type is the type of model which could be These model Bedroom, Bathroom, Corridor, Kitchen and many more. These all are also a model.

in my InspectionDetail What should be the snippet which will retrieve that exact model with data

Like if i say

$detail = $inspection->detail()->first();
$type = $detail->type();// this should return any one of Bedroom, Bathroom, Corridor etc.

here one inspection have multiple details and each detail has a type of (Bedroom, Bathroom, Corridor etc).

I am unable to figure out how I can obtain the type of detail object by morphing one of Bedroom, Bathroom, Corridor etc.

  • 写回答

1条回答 默认 最新

  • doubi4617 2016-10-06 08:36
    关注

    You need to create a relationship mapping method in InspectionDetail:

    public function inspectionable()
    {
        return $this->morphTo('inspectionable');
    }
    

    Then you can retrieve the related object (of class Bedroom, Bathroom etc.) just like any other relationship:

    $room = $detail->inspectionable;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染