Laravel: слишком мало аргументов для функции App \ Exports \ JobExport :: __ construct (), 0 передано

Я пытаюсь экспортировать в Excel из Query, но выдает ошибку

Слишком мало аргументов для функции App \ Exports \ JobExport :: __ construct (), 0 передано и ровно 1 ожидается

Приложение \ Экспорт:

use App\Applyed;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\Exportable;
class JobExport implements FromQuery
{
 use Exportable;
public function __construct(int $id)
{
    $this->id = $id;
    return $this;
}

public function query()
{
    return Applyed::query()->whereId('job_id', $this->id);
}
}

Контроллер:

 public function export($id)
{  
    return (new JobExport)->forId($id)->download('invoices.xlsx');
}  

Маршрут:

Route::get('job/export/{id}', 'JobsController@export');

Лезвие:

<a href="{{url('job/export',$job->id)}}" class="button big ripple-effect">Export to Excel</a>

person Hima Hima    schedule 20.07.2019    source источник
comment
Это мне очень помогает. надеюсь, что это поможет вам также.   -  person Hima Hima    schedule 20.07.2019


Ответы (1)


Изменять

return (new JobExport)->forId($id)->download('invoices.xlsx');

В

return (new JobExport($id))->download('invoices.xlsx');

Или удалите аргумент конструктора $id, если вы хотите использовать вместо него установщик forId().

person PtrTon    schedule 20.07.2019
comment
спасибо за комментарий, я использовал return (new JobExport ($ id)) - ›download ('invoices.xlsx'); но дай мне пустой excel :( - person Hima Hima; 20.07.2019