在将数据导出到 Laravel 中的 Excel 文件时使用 Eloquent 关系
use Eloquent relationships while exporting data to Excel file in Laravel
我想为我的两个 table 创建一个总结报告,一个是员工 table,另一个是 sims table。这些 table 具有一对多的关系。我知道我们可以使用导出模型的数据
->fromModel($model)
但是有没有办法让我可以根据两个 table 生成报告?
SO,我问了一个问题,有人答不上来,懦弱的给了-1。但是,我想出了如何手动执行此操作。把代码贴出来,希望对以后像我这样的初学者有帮助。
public function downloadSummary(){
Excel::create('records', function($excel) {
$excel->sheet('Sheet1', function($sheet) {
$employees = Employee::all();
$arr =array();
foreach($employees as $employee) {
foreach($employee->sims as $sim){
$data = array($employee->id, $employee->name, $employee->nic, $employee->address, $employee->title,
$sim->id, $sim->msisdn, $sim->imei, $sim->issued_to);
array_push($arr, $data);
}
}
//set the titles
$sheet->fromArray($arr,null,'A1',false,false)->prependRow(array(
'Employee Id', 'Employee Name', 'Employee NIC', 'Employee Address', 'Employee Title',
'Sim Id', 'Sim MSISDN', 'IMEI', 'Issued To'
)
);
});
})->export('xls');
}
我想为我的两个 table 创建一个总结报告,一个是员工 table,另一个是 sims table。这些 table 具有一对多的关系。我知道我们可以使用导出模型的数据
->fromModel($model)
但是有没有办法让我可以根据两个 table 生成报告?
SO,我问了一个问题,有人答不上来,懦弱的给了-1。但是,我想出了如何手动执行此操作。把代码贴出来,希望对以后像我这样的初学者有帮助。
public function downloadSummary(){
Excel::create('records', function($excel) {
$excel->sheet('Sheet1', function($sheet) {
$employees = Employee::all();
$arr =array();
foreach($employees as $employee) {
foreach($employee->sims as $sim){
$data = array($employee->id, $employee->name, $employee->nic, $employee->address, $employee->title,
$sim->id, $sim->msisdn, $sim->imei, $sim->issued_to);
array_push($arr, $data);
}
}
//set the titles
$sheet->fromArray($arr,null,'A1',false,false)->prependRow(array(
'Employee Id', 'Employee Name', 'Employee NIC', 'Employee Address', 'Employee Title',
'Sim Id', 'Sim MSISDN', 'IMEI', 'Issued To'
)
);
});
})->export('xls');
}