
本文将介绍如何使用 Laravel Excel 导出数据时,同时导出关联表的数据,并展示关联表中特定字段的值。我们将以 AccessoryRequest 和 AccessoryRequestDetail 表为例,演示如何导出包含配件请求及其详细信息的 Excel 文件,并显示请求发起人的用户名。
要导出关联表的数据,需要在 AccessoryRequestExport 类中进行相应的调整。首先,确保在 collection 方法中 eager loading 需要关联的表。其次,在 headings 方法中,使用点号 . 语法来访问关联表中的字段。
<?php
namespace App\Exports;
use App\AccessoryRequest;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromArray;
class AccessoryRequestExport implements FromCollection, WithHeadings
{
public function collection()
{
return AccessoryRequest::with('details', 'user')->get();
}
public function headings() : array
{
return [
'id',
'user_id', // 可以保留,也可以删除
'user.name', // 显示用户名
'store_id',
'request_date',
'status',
'created_at',
'updated_at',
'details.vendor_id', // 配件详情的供应商 ID
'details.barcode', // 配件详情的条形码
'details.description', // 配件详情的描述
'details.qty', // 配件详情的数量
'details.status' // 配件详情的状态
];
}
}代码解释:
public function collection()
{
return AccessoryRequest::with('details', 'user')->chunk(100, function ($requests) {
return $requests;
});
}通过以上步骤,我们可以成功地使用 Laravel Excel 导出关联表的数据,并在 Excel 中显示关联表中特定字段的值。这种方法可以方便地导出复杂的数据结构,满足各种业务需求。记住,在实际应用中,需要根据具体情况进行调整,例如优化性能、处理错误等。
以上就是Laravel Excel 导出:关联多表数据及显示关联表字段的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号