Bonjour, je n'arrive pas à sauvegarder une date dans la base de données, que dois-je mettre dans la vue ? Quelle doit être le champs correspondant de la BDD ?
Merci d'avance,
Alexandre
Si tu ajoute du contenu et que tu debug ta variable ca t'affiche quoi ?
normalement tu doit avoir un truc dans ce style la
[Nouvelle] => Array
(
[id] => 2
[title] => News de test 2
[content] => "At vero eos et accusamus et iusto"
[created] => 2010-09-24 01:00:00
[comment_count] => 5
)
Personnellement je voit rien de bizarre dans ta BDD met peut etre "default" a "null" logiquement si tu utilise ta fonction add pour ajouter un nouveaux contenu ton champ created doit se remplir automatiquement de que la méthode save() est exécutée.
Tient l'extrait de la doc qui en parle Par ici
J'ai réglé mon problème à l'aide du tuto sur l'Initiation à CakePHP.
Merci à antittrust qui a été très disponible !
Normalement tu crée un champ "created" en "datetime" si c'est pour sauvegarder la date de création d'un news par exemple et cake s'occupe tout seul de sauvegarder sinon tu récupère le timestamp courant et tu le sauvegarde en même temps que le reste et normalement tu ne devrait pas avoir de problème enfin pour ma part je n'ai jamais eu de souci en utilisant la première solution en tout cas
OK, mais le probleme c'est que le champ dans la vue reste de type varchar. Il ne passe pas en datetime.
Dans la vue admin_edit.ctp par exemple qui me permet d'ajouter du contenu.
Le champs de phpmyadmin est bien en datetime.
Désolé, je m'était mal exprimé.
debug la variable qui te permet de récupérer les données a afficher dans ta vue pas celle la
Voici ce que j'obtient avec un print_r (debug ne marche pas) : Array ( [Work] => Array ( [id] => 31 [url] => [category_id] => 3 [description] => test22 [titre] => test [hide] => 0 ) [Category] => Array ( [id] => 3 [nom] => Photo [url] => photo ) ). Le input date est de forme standard.[img]http://i69.servimg.com/u/f69/15/69/99/54/nouvel10.jpg[/img] Et dans PhpMyAdmin : [img]http://i69.servimg.com/u/f69/15/69/99/54/nouvel11.jpg[/img] J'ai l'impression que le lien entre base de donné et modèle n'est pas complet.
Quand je tente de mettre NULL comme valeur par défaut, j'ai une erreur :
Erreur
requête SQL:
ALTER TABLE works
CHANGE created
created
DATETIME NOT NULL DEFAULT NULL
MySQL a répondu:
1067 - Invalid default value for 'created'Normal le champ null est défini sur non donc il ne peut pas être null et tu essaye de le mettre par défaut a null du coup tu crée un conflit dans ta table met null a oui et default a null et ca devrait passer
Désolé, pas moyen. Même avec un champs date defaut NULL dans la base de donnée, ça ne marche pas...