Попытка получить свойство не-объекта (используя Carbon в Laravel 5.3)

Я получил этот запрос $paid_at = $invoice->payments->last()->paid_at, который отлично работает, возвращая строку с датой 2013-04-04 (дд, var_dump, print_r подтвердил это). Но когда я загружаю его в Carbon $paid = new Carbon($paid_at);, я внезапно получаю эту ошибку:

Исключение ошибки (E_NOTICE)

Попытка получить свойство не-объекта

$paid = new Carbon("2013-04-04"); тоже отлично работает... То же самое с \DateTime.

Я что-то упустил здесь?


person ITDesigns.eu    schedule 02.11.2016    source источник


Ответы (1)


В вашем классе payment добавьте следующее свойство:

protected $dates = [
    'paid_at',
];

Он автоматически преобразует столбец paid_at в экземпляры Carbon.

И тогда вы можете бежать -

$invoice->payments->last()->paid_at; // returns instances of Carbon

Документы

person Amit Gupta    schedule 02.11.2016
comment
Спасибо за предложение, но мне действительно нужно разобраться в этом вопросе. Почему это происходит? - person ITDesigns.eu; 03.11.2016