Ajouter une date dans la bdd sans formulaire.

Par benbox69, il y a 15 ans


Bonjour à tous,

Je développe un site avec CakePHP, c'est d'ailleurs ici que j'ai fait mes premiers pas avec ce framework.
Mon problème survient quand je veux ajouter une date dans une entrée de la BDD. Le champs dans mySQL est un DATETIME et quoi que je fasse la date reste 0000-00-00 00:00:00.

Voici le code que j'utilise :

$newTraining = array('Training' => array('user_id' => $this->Auth->user('id'),
'content_id' => $contentId, 'lang_id' => $langId),
'creation_date' => date("Y-m-d H:i:s"));
$trainingId = $this->Training->save($newTraining);

Avez-vous une idée?

Merci d'avance

Ben

4 réponses

mespeche, il y a 15 ans

Salut à toi, il faut que le format que tu envois soit le même que celui que tu dois stocker dans ta base de données. Le formate DATE dans la base de données étant sous la forme : AAAA-MM-JJ, il faut que tu renvoi : date("Y-m-d"); et c'est tout. Si tu veux l'heure en même temps, je te conseil de mettre en vachar dans ce cas.

jonathan33, il y a 15 ans

Change le nom du champ

creation_date

à

created

car cakephp va le remplir automatiquement. Pour plus d'information, regarde cette page là : ici

benbox69, il y a 15 ans

Merci jonathan33 ça fonctionne.

Avez-vous quand même une idée qui me permettrait de comprendre pourquoi le code que j'exécutais ne fonctionnais pas?

jonathan33, il y a 15 ans

ses simple , il est en dehors du array de Training
ex :

$newTraining = array('Training' => array('user_id' => $this->Auth->user('id'),  
 'content_id' => $contentId, 'lang_id' => $langId,  
'creation_date' => date("Y-m-d H:i:s")));  
$trainingId = $this->Training->save($newTraining);