File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/Exports/ReportAttributes.php
<?php
namespace App\Http\Controllers\Exports;
use App\Attribute;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class ReportAttributes implements FromCollection, WithHeadings, WithEvents, WithColumnFormatting
{
protected $storeType;
public function __construct($storeType)
{
$this->storeType = $storeType;
}
// set the headings
public function headings(): array
{
return [
'Id', 'Nombre', 'Nombre a mostrar', 'Mas de uno', 'Requerido', 'Activo', 'Id tipo de atributo', 'Nombre tipo de atributo'
];
}
// freeze the first row with headings
public function registerEvents(): array
{
return [];
}
public function columnFormats(): array
{
return [];
}
public function collection()
{
// the above code is the same as in 2.x was ..
$results = Attribute::with('attributeType')
->where('store_type', $this->storeType)
->get();
$data = [];
foreach ($results as $attribute) {
$data[] = array(
$attribute->id, $attribute->name, $attribute->display_name, $attribute->is_more_one == 1 ? 'Si' : 'No', $attribute->required == 1 ? 'Si' : 'No',
$attribute->active == 1 ? 'Si' : 'No', $attribute->attribute_type_id, $attribute->attributeType->name
);
}
return collect($data);
}
}