laravel-admin自带的导出excel会导出与此模型关联的其他数据。所以参考官方文档调整代码
文章表:id,title,user_id
用户表:id,username
//文章模型关联用户 public function user(){ return $this->belongsTo(User::class, 'user_id', 'id'); }
//ExcelExporter.php <?php namespace App\Admin\Extensions; use Encore\Admin\Grid; use Encore\Admin\Grid\Exporters\AbstractExporter; use Maatwebsite\Excel\Facades\Excel; class ExcelExpoter extends AbstractExporter { protected $head = []; protected $body = []; public function setAttr($head, $body){ $this->head = $head; $this->body = $body; } public function export() { Excel::create('Filename', function($excel) { $excel->sheet('Sheetname', function($sheet) { // 这段逻辑是从表格数据中取出需要导出的字段 $head = $this->head; $body = $this->body; $bodyRows = collect($this->getData())->map(function ($item)use($body) { foreach ($body as $keyName){ $arr[] = array_get($item, $keyName); } return $arr; }); $rows = collect([$head])->merge($bodyRows); $sheet->rows($rows); }); })->export('xls'); } }
使用方法:
$excel = new ExcelExpoter(); $excel->setAttr(['id', '标题', '作者'], ['id', 'title', 'user.username']); $grid->exporter($excel);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112804.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...