函数App \ Exports \ NilaiExport :: __ construct()的参数太少,第112行的NilaiController.php中传递了0,而预期的恰好是1

时间:2019-06-27 13:47:36

标签: php laravel constructor laravel-excel

我想将数据从$ id导出到excel,但是在App / Export / NilaiExport中添加构造函数时发生了错误。谢谢

NilaiController.php

function download($id){

    return Excel::download(new NilaiExport, 'Nilai.xlsx');
    }

NilaiExport.php

<?php

namespace App\Exports;

use App\Khs;
use Maatwebsite\Excel\Concerns\FromCollection;

class NilaiExport implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */
    protected $id;

    public function __construct($id) {
    $this->id = $id;
    }

    public function collection()
    {
        return Khs::findOrFail($this->id);
    }
}

1 个答案:

答案 0 :(得分:1)

function download($id){
    return Excel::download(new NilaiExport($id), 'Nilai.xlsx');
}

您需要将id变量传递给构造函数方法,它确实在错误消息中指出需要1个参数,但没有提供。

如果参数是可选的,则构造函数签名应如下所示

public function __construct($id = null) {
    $this->id = $id;
}

,您将id定义为

/**
 * @var \Illuminate\Support\Collection|null
 */
protected $id;