Дата выпуска в Laravel Cashier Invoice

У меня есть этот код для просмотра всех счетов на моей странице:

@foreach ($user->invoices() as $invoice)
    <tr>
        <td>{{ $invoice->date()->toFormattedDateString() }}</td>
        <td>{{ $invoice->total() }}</td>
        <td>
            <a href="/invoice/{{ $invoice->id }}">Download</a>
        </td>
    </tr>
@endforeach

Однако строка $invoice->date()->toFormattedDateString() выдает ошибку:

DateTime::__construct(): Failed to parse time string (@) at position 0 (@): Unexpected character

Я только что выполнил все инструкции на веб-сайте Laravel Cashier (Billing) и получаю эту ошибку. Я пробовал две версии Laravel (5.8 и 5.5) и две версии Laravel Cashier (8.0 и 7.0). Все тесты имеют одинаковую дату.

Я добавил правильные поля миграции. Вот как я вставляю/добавляю подписку в свою базу данных:

$user = Auth::user();
$user->newSubscription('eat', 'eat_monthly')->create($request->stripeToken);

person James Arnold    schedule 26.04.2019    source источник
comment
Пробовали ли вы вывести $invoice-›date(), чтобы узнать, не будет ли по какой-либо причине метод toFormattedDateString() работать?   -  person party-ring    schedule 26.04.2019
comment
да, я забыл упомянуть... $invoice-›date() имеет значение NULL...   -  person James Arnold    schedule 26.04.2019
comment
почему вы пытаетесь преобразовать NULL в строку даты и времени?   -  person party-ring    schedule 29.04.2019
comment
В этом проблема, Laravel Cashier обрабатывает все данные от вставки и обновления. Это моя главная проблема, почему это NULL в первую очередь. Это код для добавления подписки $user->newSubscription('eat', 'eat_monthly')->create($request->stripeToken);, но все записи, созданные этим методом, имеют дату NULL.   -  person James Arnold    schedule 29.04.2019
comment
Может быть, попробуйте сбросить информацию о подписке в контроллер, чтобы убедиться, что она вообще проходит, прежде чем сохранять ее в БД — если значение есть, мы можем работать оттуда :)   -  person party-ring    schedule 29.04.2019
comment
Возможный дубликат Дата выпуска счета-фактуры кассира Laravel   -  person Darren Taylor    schedule 06.05.2019


Ответы (2)


вместо {{ $invoice->date()->toFormattedDateString() }}

Можешь попробовать {{ $invoice->created_at->toFormattedDateString() }} ?

person Jickson Johnson Koottala    schedule 26.04.2019
comment
Да, это могло бы работать в списке счетов-фактур, но при создании счетов-фактур я все равно получил бы ошибку, потому что $invoice-›date() имеет значение NULL. - person James Arnold; 26.04.2019
comment
Я пробовал это, но получаю ошибку Call to a member function toFormattedDateString() on int. В итоге использовал Carbon::createFromTimestampUTC($invoice->created) - person Hondaman900; 23.12.2020

Stripe изменил date параметр на created работает.
Используйте этот способ:{{ $invoice->created }}

person Philipp Kishkovarov    schedule 23.12.2019