File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/Exports/ExportCoverage.php
<?php
namespace App\Http\Controllers\Exports;
use App\Coverage;
use App\City;
use App\State;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class ExportCoverage implements FromCollection, WithHeadings, WithEvents, WithColumnFormatting
{
// set the headings
public function headings(): array
{
return [
'Nombre de la cobertura', 'Costo de entrega', 'Activo', 'Nombre de la ciudad', 'Nombre del estado'
];
}
// freeze the first row with headings
public function registerEvents(): array
{
return [];
}
public function columnFormats(): array
{
return [];
}
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
$coverages = Coverage::all();
$data = [];
foreach ($coverages as $coverage) {
$cities = City::where('id', $coverage->city_id)->first();
$states = State::where([['id', $cities->state_id], ['active', 1]])->first();
$data[] = array(
$coverage->name, $coverage->cost_delivery, $coverage->active, $cities->name, $states->name
);
}
return collect($data);
}
}