Laravel excel, как сохранить файл в проект?

Для сохранения файла в проект с использованием пакета 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, а вашему пользователю будет предоставлена ссылка для его загрузки.