récupérer l'id (auto increment) d'un objet que l'on vient de sauver en db
Bonjour,
Je pense que c'est un problème relativement classique mais je n'arrive pas à trouver la "best practice" associée.
Dans un model j'ai le code suivant:
Code:
1 2 3 4 5
| $userExercice = new Application_Model_UserExercice();
$userExercice->setUserId($userId)
->setCurrentQuestionId($questionsId[0])
->setTotalNumberOfQuestions(count($questionsId));
$userExercice->save(); |
L'id de l'objet est fixé par l'auto increment de la base de donnée MySQL.
Au sein de la même fonction je dois récupérer l'id de cet objet. Normalement j'aurais utilisé:
Code:
$userExercice->getId();
Code:
1 2 3
| public function getId() {
return $this->_id;
} |
Mais l'id n'a jamais été défini pour cet objet.
Il y a-t-il une autre façon d'obtenir cet id sans avoir à chercher l'enregistrement dans la base de données?
D'autre part, les attributs que je définis (userId, currentQuestionId, totalNumberOfQuestion) ne sont pas suffisant pour retrouver l'enregistrement dans la base de donnée. Donc cette option n'est pas envisageable.
J'ai pensé à l'option "retirer l'auto increment" et le gérer à partir de zend mais j'aimerais éviter si il y a une méthode plus propre.