File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/Exports/ReportTickets.php
<?php
namespace App\Http\Controllers\Exports;
use DB;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ReportTickets implements FromCollection, WithHeadings, WithEvents
{
private $match_event_id;
public function __construct($match_event_id)
{
$this->match_event_id = $match_event_id;
}
// set the headings
public function headings(): array
{
return [
'id', 'code_ticket', 'match_event_id', 'zone', 'created_at', 'updated_at'
];
}
// freeze the first row with headings
public function registerEvents(): array
{
return [];
}
public function collection()
{
// id, code_ticket, match_event_id, zone, created_at , updated_at
$obj = $obj = DB::table('tickets')
->select('tickets.id', 'tickets.code_ticket', 'tickets.match_event_id', 'tickets.zone', 'tickets.created_at', 'tickets.updated_at')
->where('tickets.match_event_id', '=', $this->match_event_id)
->orderBy('tickets.id', 'desc')
->get();
$data = [];
foreach ($obj as $ticket) {
$data[] = array(
$ticket->id, $ticket->code_ticket, $ticket->match_event_id, $ticket->zone, $ticket->created_at, $ticket->updated_at,
);
}
return collect($data);
}
}