File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/Exports/ReportAttributes.php
<?php
namespace App\Http\Controllers\Exports;
use App\Attribute;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
class ReportAttributes implements FromCollection, WithHeadings, WithEvents, WithColumnFormatting {
// 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')->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);
}
}