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