Laravel Excel导出关系数据
我试图将记录导出到CSV,该CSV查询关系,但我的文件始终只返回标题 我正在使用laravel excel包来完成这项工作 控制器方法Laravel Excel导出关系数据,laravel,eloquent,laravel-excel,Laravel,Eloquent,Laravel Excel,我试图将记录导出到CSV,该CSV查询关系,但我的文件始终只返回标题 我正在使用laravel excel包来完成这项工作 控制器方法 public function export(Team $team) { return Excel::download(new TeamMembersExport(), 'team_members.csv'); } public function members(){ return User::with('games')->whereHa
public function export(Team $team)
{
return Excel::download(new TeamMembersExport(), 'team_members.csv');
}
public function members(){
return User::with('games')->whereHas('games', function ($q) {
$q->where('team_id', $this->id);
})->get();
}
团队方法
public function export(Team $team)
{
return Excel::download(new TeamMembersExport(), 'team_members.csv');
}
public function members(){
return User::with('games')->whereHas('games', function ($q) {
$q->where('team_id', $this->id);
})->get();
}
导出文件
class ProviderMembersExport implements WithMapping, WithHeadings
{
public function map($team): array
{
$members = $team->members()->only([
'name',
'team_number',
'date_of_birth'
]);
return $members->all();
}
public function headings(): array
{
return [
'Name',
'Team Number',
'Date of Birth'
];
}
}
我是否在映射方法中写得不正确?有几个突出的问题
$team
传递给导出,我假设这是基于controller方法的目标FromQuery
,FromCollection
,FromArray
,FromView
好消息是,这一切都可以通过一些调整来修复 控制器
公共函数导出(团队$Team)
{
//将团队模型传递到导出中
返回Excel::下载(新的TeamMembersExport($team),'team_members.csv');
}
导出
//添加FromCollection关注点
类ProviderMembersPort实现了FromCollection、WithMapping和Headers
{
使用可出口产品;
//存储团队依赖项的位置
私人团队;
//使用构造函数处理依赖项注入
公共职能机构(团队$团队)
{
$this->team=$team;
}
//设置要导出的成员集合
公共功能集合()
{
返回$this->team->members();
}
//映射单个成员行的外观
//此方法将迭代每个集合项
公共函数映射($member):数组
{
返回[
$member->name,
$member->team_number,
$member->出生日期,
];
}
//这很好
公共函数标题():数组
{
返回[
“姓名”,
“团队编号”,
“出生日期”
];
}
}
施展了魅力!谢谢