Я использую Laravel 5.8 с Laravel Cashier. Когда я пытаюсь показать список счетов пользователя, я использовал этот код:
@foreach (Auth::user()->invoices() as $invoice)
<tr>
<td>{{ $invoice->date()->toFormattedDateString() }}</td>
<td>{{ $invoice->total() }}</td>
<td>
<a href="/user/invoice/{{ $invoice->id }}">Download</a>
</td>
</tr>
@endforeach
Однако строка $invoice->date()->toFormattedDateString()
выдает ошибку:
DateTime::__construct(): Failed to parse time string (@) at position 0 (@): Unexpected character
Похоже, что дата выставления счета равна нулю. Есть ли другие настройки, которым я должен следовать? Загрузка счета-фактуры также приведет к ошибке из-за даты выставления счета.
EDIT:
Я отредактировал класс Invoice Laravel (vendor \ laravel \ laravel \ cashier \ Invoice.php) для печати реальной даты, и оказалось, что дата счета-фактуры равна NULL.
/**
* Get a Carbon date for the invoice.
*
* @param \DateTimeZone|string $timezone
* @return \Carbon\Carbon
*/
public function date($timezone = null)
{
echo("HERE <br />");
var_dump($this->invoice->date);
exit();
$carbon = Carbon::createFromTimestampUTC($this->invoice->date);
return $timezone ? $carbon->setTimezone($timezone) : $carbon;
}
var_dump($this->invoice->date);
возвращает NULL.