You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1003 B

<?php
namespace App\Exports;
use App\Models\Puesto;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
class PuestosExport implements FromCollection, WithHeadings
{
protected $puestos;
// Permite pasar una colección personalizada si lo deseas
public function __construct($puestos = null)
{
$this->puestos = $puestos;
}
public function collection()
{
// Obtén los puestos
$puestos = $this->puestos ?: Puesto::where('eliminado', 0)->get(['nombre']);
// Construye la colección con número consecutivo
$data = [];
$contador = 1;
foreach ($puestos as $puesto) {
$data[] = [
'ID' => $contador++,
'Nombre del Puesto' => $puesto->nombre,
];
}
return collect($data);
}
public function headings(): array
{
return [
'ID',
'Nombre del Puesto',
];
}
}