在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  PHP  Linux  數據庫/ laravel excel3.0的 “把 collection 作為 Excel

laravel excel3.0的 “把 collection 作為 Excel 下載”,調用出問題?

業(yè)務是將兩表查詢的結果集合 ,導出到excel,選用了幾乎壟斷市場的 Laravel Excel,結果文檔好簡潔,實在找不到適合我業(yè)務的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()

截圖:

clipboard.png

求大佬指點迷津,另:拿著2.0代碼來回答的就算了。

回答
編輯回答
念舊

版本降級 用2.0

2018年8月23日 16:30
編輯回答
久礙你

稍微看了一下文檔,在 collection 方法不要進行下載或者任何多余的方法。在 collection 方法返回一個 Collection 對象即可。即

public function collection()
{

    return (new Collection([[1, 2, 3], [1, 2, 3]]));
}

然后在控制器調用他的更多方法

public function export(Excel $excel, YourClass $export) 
{
    return $excel->download($export, 'invoices.xlsx');
}
2018年4月25日 21:49