业务是将两表查询的结果集合 ,导出到excel,选用了几乎垄断市场的 Laravel Excel
,结果文档好简洁,实在找不到适合我业务的api,选了一个最近似的 “把 collection 作为 Excel 下载” ,代码是:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/5/25
* Time: 11:30
*/
namespace App\Support\excel;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\FromCollection;
class FormExport implements FromCollection
{
private $aid;
public function __construct()
{
// $this->aid = $aid;
}
/**
* @return Builder
*/
/* public function query()
{
// TODO: Implement query() method.
$ids [] = '45';
$ids [] = '46';
$ids [] = '47';
$ids[] = '48';
// return CompValues::query()->whereIn('id', $ids);
}*/
/**
* @return Collection
*/
public function collection()
{
return (new Collection([[1, 2, 3], [1, 2, 3]]))->downloadExcel('aa.xlsx', $writerType = 'Xlsx', $headings = false);
// TODO: Implement collection() method.
}
}
报错是:
Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::each()
截图:
求大佬指点迷津,另:拿着2.0代码来回答的就算了。
版本降级 用2.0