Я работаю с Laravel 5.8 с PHP 7.4 для разработки своего проекта, и в этом проекте я хотел создать файл Excel из таблицы с именем students
из представления.
Итак, вот что я сделал:
Я набрал composer require maatwebsite/excel
в Терминале и скачал пакет.
Я добавил \Maatwebsite\Excel\ExcelServiceProvider::class,
в providers
на config/app.php
и 'Excel' => \Maatwebsite\Excel\Facades\Excel::class,
на aliases
.
А затем сделал этот новый файл экспорта:
php artisan make:export StudentExportView --model=App\Member\Student
И этот файл содержит это:
namespace App\Exports;
use App\Member\Student;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FormView;
use Maatwebsite\Excel\Facades\Excel;
class StudentExportView implements FormView
{
/**
* @return \Illuminate\Support\Collection
*/
public function view(): View
{
return view('admin.students.custom', [
'customs' => Student::all()
]);
}
}
И в контроллере я добавил этот метод:
public function export_view()
{
return Excel::download(new StudentExportView, 'students.xlsx');
}
А также эти маршруты до web.php
:
Route::get('export_view','StudentAdminController@export_view')->name('students.export_view');
Но когда я это делаю, я получаю эту ошибку:
Symfony\Component\Debug\Exception\FatalThrowableError (E_ERROR)
Интерфейс «App\Exports\FormView» не найден
Так что же здесь не так?
Примечание
Если я удалю use Maatwebsite\Excel\Concerns\FormView;
из класса экспорта, будет загружен пустой файл Excel
И пакет "maatwebsite/excel": "^3.1"
admin/students/custom.blade.php
- person S N Sharma   schedule 31.07.2021