【发布时间】:2021-10-02 04:26:28
【问题描述】:
我正在使用 Laravel 5.8 和 PHP 7.4 来开发我的项目,在这个项目中,我想从 View 的名为 students 的表中创建一个 Excel 文件。
这就是我所做的:
我在终端输入composer require maatwebsite/excel 并下载了包。
我在providers 中添加了\Maatwebsite\Excel\ExcelServiceProvider::class, 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()
]);
}
}
并且在Controller处,我添加了这个方法:
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中
标签: php laravel laravel-5.8 maatwebsite-excel laravel-excel