id J'essaie actuellement d'accéder aux données qui vient d'être inséré à l'aide:
if($this->User->save($this->data))
{
$user_id = $this->User->id; #119
...
Mais je reçois l'erreur:
Notice (8): Undefined index: id [APP/controllers/users_controller.php, line 119]
Code | Context
if($this->User->save($this->data))
{
$user_id = $this->data['User']['id'];
Je ne comprends pas pourquoi la sauvegarde réussit, mais l'identifiant n'est pas défini?
EDIT:
Le problème est que parce que j'utilisais des relations de base de données qui ont forcé ma lecture pour renvoyer des données de plusieurs tables, il a fini par retourner les données de plusieurs tables, donc ce que je devais vraiment faire était:
$user = $this->User->read();
$id = $user['User']['id'];
plutôt que:
$user = $this->User->read();
$id = $user['id'];
Avez-vous vérifié le contenu de '$ this-> data' avant cette instruction if? Avec un 'var_dump ($ this-> data)' –
Avant le if, les variables sont définies, sauf pour ID. Après le if, les variables sont encore définies, à l'exception de l'ID, qui doit être défini par l'insertion. – chustar
OIC, le problème semble être que le modèle ne recharge pas les données de la base de données. Correct? Techniquement parlant, vous n'essayez pas d'accéder aux données qui viennent d'être insérées, mais plutôt aux données créées par la base de données suite à l'insertion. Je ne connais pas CakePHP, mais je ne m'attendrais pas à ce qu'il le fasse seul. Je m'attendrais à devoir recharger ces données de la base de données. –