auditionadmin/app/Http/Controllers/Admin/ExportResultsController.php

38 lines
1.0 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Actions\Reports\GetExportData;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Response;
class ExportResultsController extends Controller
{
public function __invoke()
{
$exporter = App::make(GetExportData::class);
$data = $exporter->getData();
// Create a callback to write the CSV data
$callback = function () use ($data) {
$file = fopen('php://output', 'w');
foreach ($data as $line) {
// Convert the string into an array
$fields = explode(',', $line);
// Write the array to the CSV file
fputcsv($file, $fields);
}
fclose($file);
};
// Return a response with the CSV content
return Response::stream($callback, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="audition_export.csv"',
]);
}
}