模型詳情為
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
這樣就能正常的顯示設備名稱了