Bonjour à tous,
j'aimerais savoir si il y a une fonction dans cakephp qui retourne l'id de l'entry quand elle est ajoutée (dans une table auto_increment).

Attention, je ne veux pas l'id de la dernière entry car il y a toujours un (petit) risque que, entre l'ajout et la vérification de la dernière entry, une autre entry s'est faite et l'utilisateur va recevoir non l'id de son sujet mais celui de la dernière, faite par quelqu'un d'autre.

D'avance, merci

3 réponses


C'est simple, tu selectionnes la dernière entry de l'utilisateur en question et tu lui envoie l'id de son sujet.

En sélectionnant seulement l'id de l'utilisateur, sa lui évite de se retrouver avec l'id d'un autres.

$this->Model->id est la variable qui contient le dernier id inséré dans la base que gere Model (mais il ne faut pas qu'il y ai eu d'autres actions comme redirection, clic sur un lien, reafraichissement ou nouvel enregistrement sur la meme base)

Effectivement, sortir le dernier ID crée par l'utilisateur fonctionne. Sauf si il chipote un peux trop et envoie 10 news en même temps mais bon, ce sera pour sa pomme dans ce cas.
Je pense que je vais utiliser cette technique mais j'aurai voulu quand même savoir si MySQL n'intégrait pas une fonction qui retourne l'ID incrémenté lors de l'execution de la requête.

flohw, est-ce correct donc:

$this->Posts->save($this->data, true, $fields);
$this->redirect(array('action' => 'overview', $this->Posts->id));

Sachant que $this->data ne contient aucun id donc la fonction save va crée une nouvelle entry