Я хотел бы экспортировать файл Excel из блейд-представления Laravel, используя Laravel Excel но я получил эту ошибку:
Declaration of App\Http\Controllers\ExportController::view($id): Illuminate\Contracts\View\View must be compatible with Maatwebsite\Excel\Concerns\FromView::view(): Illuminate\Contracts\View\View
контроллер
<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use App\User;
class ExportController implements FromView
{
public function view($id): View
{
return view('users.export', [
'user' => User::find($id)
]);
}
}
маршрут
Route::get('exportxls/{id}', 'ExportController@view');
Blade File
<table>My data is here...</table>
Что случилось ?
Так как вы реализуете Maatwebsite \ Excel \ Concerns \ FromView, вы должны переопределить view()
без каких-либо параметров.
public function view(): View
{
return view('users.export');
}
Так как вам нужно user_id
Вы можете попытаться передать его функции в URL. Что-то вроде: server/exportxls?user_id=2
И тогда получится так:
$userId = request('user_id');
Проверьте, работает ли это в вашем случае.
Других решений пока нет …