Laravel export excel mapping

Рейтинг: 0Ответов: 0Опубликовано: 03.08.2023

данный которые хранятся в таблице формат 2023-06-22 22:55:12 такой

мне нужно сделать формат 22-06-2023

<?php

namespace App\Exports;

use App\Models\ticket;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithStyles;
use Maatwebsite\Excel\Concerns\setAlignment;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\BeforeExport;
use Maatwebsite\Excel\Events\AfterSheet;
use Maatwebsite\Excel\Sheet;
use DB;

use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Maatwebsite\Excel\Concerns\WithMapping;
                                                                                                                                          
class TicketExport implements FromCollection, WithHeadings, ShouldAutoSize, WithColumnWidths, WithStyles, WithEvents, WithColumnFormatting, WithMapping
{

    public function collection()
    {
        $data = DB::table('tickets')->select('id', 'BSONUM', 'created_at', 'route', 'course', 'FARE', 'Taxa', 'Penalty', 'additional_fee', 'CURRENCY', 'Totalamount', 'userid', 'SYSTEM', 'GENDER', 'PASSENGER_TYPE', 'FirstFlyDate', 'PNR', 'SURNAME', 'NAME', 'Status')->get();
        return $data ;
    }

    public function headings(): array
    {
        return [
            '#',
            'Номер билет',
            'Дата выписки',
            'Время выписки',
            'Маршрут',
            'Курс',
            'Тариф',
            'Такса',
            'Штраф',
            'Доп Сбор',
            'Валюта билета',
            'Всего в TJS',
            'Покупатель Котрагент',
            'ИАТА',
            'Кассир контрагента',
            'Катег',
            'Дата вылета',
            'PNR',
            'Фамилия',
            'Имя',
            'Статус',
        ];
    }

    public function map($data): array
    {
        return [
            $data->created_at,
            Date::dateTimeToExcel($data->created_at)
        ];
    }

    public function columnFormats(): array
    {
        return [
            'B' => 0,
            'C' => NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE,
        ];
    }

}

но у меня появляется ошибка

PhpOffice\PhpSpreadsheet\Shared\Date::dateTimeToExcel(): Argument #1 ($dateValue) must be of type DateTimeInterface, string given

подскажите пожалуйста где моя ошибка?

Ответы

Ответов пока нет.