在Laravel中将数据导出到Excel文件时使用Eloquent关系

时间:2015-11-02 19:33:19

标签: eloquent laravel-5.1 maatwebsite-excel

我想创建两个表的摘要报告,一个是employees表,另一个是sims表。这些表有一对多的关系。我知道我们可以使用导出模型的数据 case class StdInfo(id: String, address: String, dob: Long) extends Student(id) 但有没有办法让我根据这两个表生成报告?

1 个答案:

答案 0 :(得分:11)

所以,我问了一个问题和一个无法回答但却懦弱地获得-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');
    }