<?php namespace App\Exports; use App\Models\Requirement; use Maatwebsite\Excel\Concerns\Exportable; use Maatwebsite\Excel\Concerns\FromQuery; use Maatwebsite\Excel\Concerns\WithHeadings; use Maatwebsite\Excel\Concerns\WithMapping; class RequirementExport implements FromQuery, WithMapping, WithHeadings { use Exportable; private static $index = 1; public function query() { return Requirement::with(['createdBy', 'plan', 'group', 'asset', 'projects']) ->orderBy("created_at") ->filter(request()->all()); } /** * @param Requirement $requirement * @return array */ public function map($requirement): array { $displayId = self::$index++; return [ $displayId, //$requirement->id, $requirement->title, $requirement->group?->name, $requirement->status, $requirement->asset?->name, $requirement->plan?->name, $requirement->projects?->pluck("name")->join(","), $requirement->priority, $requirement->approval_status, $requirement->note, $requirement->description, $requirement->createdBy?->name, $requirement->created_at, ]; } public function headings(): array { return [ 'ID', 'Title', 'Requirement Group', 'Status', 'Plan', 'Asset', 'Projects', 'Priority', 'Approval Status', 'Note', 'Description', 'Created By', 'Created Date', ]; } }