Question

Je n'ai plus de champ sur la base de données sur les created_at et updated_at comme TIMESTAMP le nom du champ est date.

J'ai donc remplacé la méthode getDates() sur mon modèle éloquent parce que je voulais que ce domaine être instancié à partir de Carbone.

public function getDates()
{
   return ['date','created_at','updated_at'];
}

Mais quand je vais pour créer un nouvel enregistrement dans la base de données il me jeter une exception:

InvalidArgumentException Inattendu de données disponibles.Les données inattendues trouvé.Les données inattendues trouvé.

Ps:la valeur envoyée à partir de la forme est dans l'UE format: d-m-Y h:i

Je ne sais pas comment comprendre ce problème toute suggestion sont appréciés

Était-ce utile?

La solution

Vous tableau retourné par getDates a fusionné avec le par défaut résultant en:

['created_at','updated_at','deleted_at','date','created_at','updated_at'];

utilisez donc uniquement 'date' il et doit être fine.


Essayez de configurer un mutateur pour 'date' de convertir les données d'entrée dans le format d'horodatage.L'erreur que vous obtenez n'est pas Éloquent, mais le Carbone.

public function setDateAttribute($value)
{
    $this->attributes['date'] = Carbon\Carbon::createFromFormat('d-m-Y h:i', $value);
}

Aussi, il y a erreur dans les docs, comme getDates définit date accesseurs, pas des mutateurs..

Autres conseils

Essayez ceci:

Carbon::createFromFormat('d.m.Y H:i', $request->publishdate);    

Vous ne pouvez pas utiliser le format "d-mes h:i"

Vous devez utiliser l'une de celles-ci:Timestamp UNIX, chaîne de date (Y-m-d), la date-time de la chaîne, DateTime / Carbone instance

https://laravel.com/docs/4.2/eloquent#accessors-and-mutators

Même si c'est un ans et je suis en plaçant mon entrée pour ceux qui sont encore en difficulté, même après le réglage de la mutateur.

Si le code html date d'entrée de l'élément de passe de la date dans le format de l'atome(1975-12-25T14:15:16-05:00) puis la date mutateur ne va pas aider.Vous devez appliquer le correctif suivant en Éclairer\Database\Éloquent\classe de Modèle à la ligne#2848 à le faire fonctionner (dans laravel#5).

$value = Carbon::createFromFormat($format, (new DateTime($value))->format('Y-m-d H:i:s'));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top