Где консольная команда сохраняет экспортированный файл

Я использую Laravel 5.8 и попытался создать пользовательскую команду следующим образом:

      php artisan make:command app exportappresults

И команда звучит так:

      protected $signature = 'app:exportappresults';

protected $description = 'Export App Exam Result Into Excel';

public function __construct()
{
    parent::__construct();
}

public function handle()
{
    return Excel::download(new TavanmandAppUserExamExport,'userexamlist.xlsx');
}

Как видите, я использовал Laravel Excel и пытался экспортировать данные в файл Excel.

Обратите внимание, что этот код отлично работает в контроллере и может правильно экспортировать файл Excel.

Но теперь я не знаю, куда идет экспортированный файл excel из БД, когда я использую консольную команду.

Так что, если вы знаете, пожалуйста, дайте мне знать...

Спасибо.

1 ответ

Excel::downloadиспользуется в контроллерах HTTP для передачи экспортированных данных в ответ HTTP. Если вам нужно сохранить файл на диске, используйте вместо этого:

      public function handle()
{
    Excel::store(new TavanmandAppUserExamExport, 'userexamlist.xlsx');
}

Файл будет храниться в хранилище по умолчанию (на диске), настроенном в настройках laravel.config/filesystems.php, по умолчанию это./storage/app.

Также вы можете указать другой диск в качестве третьего аргументаExcel::storeспособ, см. Хранение экспортов на диске

Другие вопросы по тегам