Для сохранения файла в проект с использованием пакета Laravel Excel вам потребуется выполнить несколько шагов.
1. Установка пакета Laravel Excel:
Для начала установите пакет, запустив следующую команду в терминале в корневой директории вашего проекта:
composer require maatwebsite/excel
2. Создание контроллера:
Создайте контроллер, который будет отвечать за сохранение файла. Вы можете использовать команду Artisan, чтобы создать новый контроллер:
php artisan make:controller ExcelController
3. Внесение изменений в роутинг:
Откройте файл web.php
, который находится в директории routes
, и добавьте маршрут для вашего контроллера:
use AppHttpControllersExcelController; Route::get('/export', [ExcelController::class, 'export'])->name('excel.export');
4. Создание метода экспорта в контроллере:
Откройте файл ExcelController.php
, который находится в директории app/Http/Controllers
, и добавьте метод export
:
use MaatwebsiteExcelFacadesExcel; use AppExportsYourExportClass; class ExcelController extends Controller { public function export() { return Excel::download(new YourExportClass, 'filename.xlsx'); } }
5. Создание экспортного класса:
Создайте класс экспорта, который будет определять формат и содержимое вашего файла. Для этого выполните команду Artisan:
php artisan make:export YourExportClass
6. Определение формата и содержимого файла:
Откройте созданный файл экспорта, который находится в директории app/Exports
, и внесите соответствующие изменения. Например, вы можете определить формат и содержимое файла следующим образом:
use MaatwebsiteExcelConcernsFromCollection; use AppModelsYourModel; class YourExportClass implements FromCollection { public function collection() { return YourModel::all(); } }
7. Размещение файла в публичной директории:
Чтобы разместить файл в публичной директории вашего проекта, выполните следующую команду:
php artisan storage:link
8. Обновление представления:
Обновите представление, из которого вы будете вызывать экспорт. Например, вы можете добавить ссылку на экспорт в ваш представлении следующим образом:
<a href="{{ route('excel.export') }}">Экспортировать в Excel</a>
После выполнения всех этих шагов вы сможете сохранить файл в ваш проект, перейдя по ссылке на экспорт, определенной в представлении. Файл будет сохраняться в директории public/storage
, а вашему пользователю будет предоставлена ссылка для его загрузки.