При выполнении следующих действий в Laravel Artisan Тинкер:Carbon Carbon :: сейчас() бросает InvalidArgumentException с сообщением 'Скользящий данные'
$article = new App\Article;
$article->published_at = Carbon\Carbon::now();
Я получаю эту ошибку:
InvalidArgumentException with message 'Trailing data'
Однако Carbon\Carbon::now()
на его собственном возврате экземпляр Carbon
, как и ожидалось.
published_at
должен быть мутирован в Углеродный экземпляр через protected $dates = ['published_at'];
в модели, а также включен в protected $fillable
.
Кто-нибудь знает, что здесь происходит или как я могу решить?
EDIT: То же самое происходит, когда побежал в затворе в маршрутах, так не специфичны повозиться
EDIT 2: Похоже, другие испытывают это: https://laracasts.com/discuss/channels/general-discussion/carboncarbonnow-giving-error и дважды в комментариях для https://laracasts.com/series/laravel-5-fundamentals/episodes/8
EDIT 3: Совсем точно такой же код, как и первый пример, используется в https://laracasts.com/series/laravel-5-fundamentals/episodes/15 в 15:10 без ошибок.
EDIT 4: Переключение строки 2 вышеуказанного кода на $article->published_at = Carbon::now()->format('Y-m-d');
работает отлично и даже включает время, когда хранится в базе данных (хотя и не совсем понятно).
Я думаю, что «конечные данные» могут относиться к полному дат-времени слишком длинным, но кажется странным, что Laravel делает так много с датами автоматически (например, автоматическое преобразование в экземпляры Carbon), но не это.
Использование в Редактировании 3 было бы предпочтительнее, хотя!
выглядит как обычная ошибка DateTime, однако это не должно произойти с 'сейчас()' метод. Есть ли вероятность, что что-то не так с настройками вашего часового пояса? Как выглядит конфигурация часового пояса в 'config/app.php'? – kajetons
Часовой пояс по умолчанию: '' timezone '=>' UTC ', ' –
Просматривая исходный код, похоже, что он не проходит мимо этой строки' return new DateTimeZone (date_default_timezone_get()); 'во время построения класса. Если это ни к чему не приведет, я сомневаюсь, что вы можете ничего сделать, кроме использования собственных функций даты. – kajetons