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

Too few arguments to function App\Exports\NilaiExport::__construct(), 0 passed in NilaiController.php on line 112 and exactly 1 expected

我想从$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);
    }
}
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;