Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > ORM > Doctrine
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/04/2011, 16h19   #1
Invité de passage
 
Inscription : juin 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 9
Points : 3
Points : 3
Par défaut Récupération d'objet identifiant non renseigné.

Bonjour a tous!

Je suis nouveau dans dcotrine et je me suis mis à la version 1.2.
J'utilise une base MySQL.

J'ai un objet Role avec 2 champs:
id : integer en primary key et auto increment
titre: string

la création des objets en base ne pose pas de problème c'est lors de la modification. Je récupère mon objet comme ceci:

$role = Doctrine_Core::getTable('Role').find(id);

cela fonctionne à moitié, le champs titre est bien renseigné avec la bonne valeur, mais pas l'identifiant. Si je rajoute des attributs à l'objet role ils seront bien renseigné. Le seul problème est l'identifiant inexistant. Du coup quand je fais un save il me créé un nouvel objet au lieu de me le modifier.

La solution que j'ai trouvé c'est d'utiliser la méthode assignIdentifier afin de repasser à l'objet son identifiant pour en quelques sortes "forcer l'update".

Auriez vous une solution à m'apporter? Je pensais peut etre un problème de configuration.

Cordialement,

Herudo
herudo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 12h58   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
J'aurais utilisé
Code :
$role = Doctrine_Core::getTable('Role').findOneById(id);
plutôt pour retrouver l'enregistrement.

C'est bizarre ton problème, je n'ai jamais rencontré cela et ne vois même pas comment le reproduire.

Je me demande si tu n'aurais pas un problème de majuscule quelque part. Dans le genre "Id" en base de donnée et "id" dans ton objet.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h05.


 
 
 
 
Partenaires

Hébergement Web