Я пытаюсь глобально изменить тип даты для отметок времени (созданный_обновлен_данный_ удаленный_кат) во всем приложении с timestams
на timestampsTz
.В миграциях это не проблема.В отдельных моделях также, поскольку я могу перезаписать параметр $dateFormat
модели.
Но у меня проблема с сводными таблицами, содержащими временные метки, поскольку они не наследуют никаких параметров от моих моделей.
Допустим, у меня есть продукты и атрибуты таблица с attribute_product между ними, содержащая такие столбцы, как value
и timestamps
.Если я попытаюсь извлечь все атрибуты со значениями и временными метками продукта, я сделаю что-то вроде этого: $product->attributes
, но получу ошибку:
local.ERROR: Trailing data {"exception":"[object] (InvalidArgumentException(code: 0): Trailing data at \\vendor\\esbot\\carbon\\src\\Carbon\\Carbon.php:910)
[stacktrace]
#0 \\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes.php(716): Carbon\\Carbon::createFromFormat('Y-m-d H:i:s', '2019-06-25 16:1...')
#1 \\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes.php(739): Illuminate\\Database\\Eloquent\\Model->asDateTime('2019-06-25 16:1...')
#2 \\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Concerns\\HasAttributes.php(532): Illuminate\\Database\\Eloquent\\Model->fromDateTime('2019-06-25 16:1...')
#3 \\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php(230): Illuminate\\Database\\Eloquent\\Model->setAttribute('created_at', '2019-06-25 16:1...')
#4 \\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php(248): Illuminate\\Database\\Eloquent\\Model->fill(Array)
...
Строитель извлекает метку времени в правильном формате (например,«2019-06-25 16: 17: 01 + 02»), но при попытке гидратации сводных данных связанных моделей используется неверный формат «Ymd H: i: s» и происходит сбой.
IsЕсть ли правильный способ добиться этого?Или есть какое-то полезное решение?
Любая помощь приветствуется?Заранее спасибо!