模型详情为

class CheckLog extends Model
{
    use SoftDeletes;
    protected $table = 'xf_check_log';
    protected $dates = ['deleted_at'];

    // 关联设备详情表
    public function equipmentdetail()
    {
        return $this->belongsTo(EquipmentDetail::class, 'edid', 'id');
    }

}

 一个设备检查记录的model  关联了设备详情的model   目的就是在checklog的详情页面中 不显示edid 而是关联显示出设备的名称

 

在表格列表的展示中 可以这方便的使用关联展示

$grid->column('equipmentdetail.name', __('设备名'));

 

但是在详情中 这种.连接的方法却行不通了 此时文档中介绍的方法又很复杂 这里给出一个简单的方法

$show = new Show(CheckLog::findOrFail($id));

        $show->field('equipmentdetail', __('设备名'))->as(function ($content) {
            return $content->name;
        });

这里CheckLog::findOrFail($id)是查询出来的数据

回调中的$content相当于CheckLog::findOrFail($id)->equipment

这样就能正常的显示设备名称了

posted on 2020-04-10 11:32  头皮发麻  阅读(1926)  评论(0编辑  收藏  举报