Слишком мало аргументов для функции App \ Exports \ NilaiExport :: __ construct (), 0 передано в NilaiController.php в строке 112 и ожидается ровно 1 - PullRequest
0 голосов
/ 27 июня 2019

Я хочу экспортировать данные в excel из $ id, но произошла ошибка, когда я добавил конструктор в 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 Ответ

1 голос
/ 27 июня 2019
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;
...