File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/Exports/AcademyNewsExport.php
<?php
namespace App\Http\Controllers\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
class AcademyNewsExport implements FromCollection, WithHeadings, WithEvents
{
private $results;
public function __construct($results)
{
$this->results = $results;
}
// set the headings
public function headings(): array
{
return [
__('messages.academy_news.create_date'),
__('messages.academy_attendances.tag1-1'),
__('messages.academy_attendances.tag1-2'),
__('messages.academy_attendances.tag1-3'),
__('messages.academy_news.type_new'),
__('messages.academy_news.init_date'),
__('messages.academy_news.end_date'),
__('messages.academy_news.reason'),
__('messages.academy_news.file'),
__('messages.academy_news.receiver'),
__('messages.academy_news.status'),
];
}
// freeze the first row with headings
public function registerEvents(): array
{
return [];
}
public function collection()
{
$data = [];
foreach ($this->results as $item) {
$selectStatus = explode("\n", $item[10])[0];
$status = __('messages.academy_news.pending');
if (str_contains($selectStatus, 'IN_PROGRESS')){
$status = __('messages.academy_news.in_progress');
}
if (str_contains($selectStatus, 'FINISHED')){
$status = __('messages.academy_news.finished');
}
$item[10] = $status;
if ($item[8]){
$item[8] = explode('"', $item[8])[1];
}
$data[] = $item;
}
return collect($data);
}
}