我将导出类设置为可在App / Exports中导出:
<?php
namespace App\Exports;
use App\Repositories\ItemRepository;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
class ItemsExport implements FromCollection
{
use Exportable;
protected $itemRepository;
public function __construct(ItemRepository $itemRepository)
{
$this->itemRepository = $itemRepository;
}
public function collection()
{
return $this->itemRepository->getItem();
}
}
我从控制器这样打来电话:
return (new ItemsExport)->download('items.xlsx');
存在这样的错误:
too few arguments to function App\Exports\ItemsExport::__construct(), 0 passed
如何解决此错误?
我从本教程中获得了导出excel:https://laravel-excel.maatwebsite.nl/docs/3.0/export/basics
答案 0 :(得分:1)
为了使用Laravel的依赖注入,您需要通过应用程序容器构造新实例:
return app()->make(ItemsExport::class)->download('items.xlsx');
这假设应用程序知道如何构造ItemRepository
或者,如果这是在控制器操作中,则可以将其注入,例如
public function controllerAction(ItemsExport $exporter) {
return $exporter->download('items.xlsx');
}