Quando si esegue quanto segue in laravel Artisan Tinker:Carbon Carbon :: ora() genera InvalidArgumentException con il messaggio 'Trailing dati'
$article = new App\Article;
$article->published_at = Carbon\Carbon::now();
ottengo questo errore:
InvalidArgumentException with message 'Trailing data'
Tuttavia, Carbon\Carbon::now()
sulle proprie dichiarazioni restituisce un'istanza Carbon
come previsto.
published_at
deve essere modificato nell'istanza Carbon tramite protected $dates = ['published_at'];
nel modello ed è anche incluso in protected $fillable
.
Qualcuno sa cosa sta succedendo qui o come posso risolvere?
EDIT: La stessa cosa accade quando correva in una chiusura di percorsi, quindi non specifico ad armeggiare
EDIT 2: Sembra che gli altri stanno vivendo questo: https://laracasts.com/discuss/channels/general-discussion/carboncarbonnow-giving-error e due volte nei commenti per https://laracasts.com/series/laravel-5-fundamentals/episodes/8
EDIT 3: praticamente lo stesso codice del primo esempio utilizzato in https://laracasts.com/series/laravel-5-fundamentals/episodes/15 alle 15:10 senza errori.
MODIFICA 4: lo scambio della riga 2 del codice sopra a $article->published_at = Carbon::now()->format('Y-m-d');
funziona correttamente e include anche il tempo quando memorizzato nel database (sebbene non sia sicuro del perché).
Immagino che "i dati finali" possano riferirsi all'intero datetime essere troppo lungo, ma sembra strano che Laravel faccia così tanto con i datetimes automaticamente (auto-convertendosi in istanze Carbon, ad esempio) ma non questo.
Tuttavia, l'utilizzo in Modifica 3 sarebbe preferibile!
Sembra un normale errore DateTime, tuttavia non dovrebbe accadere con il metodo 'now()'. C'è qualche possibilità che qualcosa non funzioni nelle impostazioni del fuso orario? Che aspetto ha la configurazione del fuso orario in 'config/app.php'? – kajetons
Il fuso orario è predefinito: ''timezone' => 'UTC',' –
Guardando attraverso il codice sorgente, sembra che non superi la riga 'return new DateTimeZone (date_default_timezone_get());' durante la costruzione della classe. Se questo non ti porta da nessuna parte dubito che ci sia qualcosa che puoi fare se non usando le funzioni di data nativa. – kajetons