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 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测