Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous, j'ai un ptit soucis lors d'un enregistrement d'un objet dans ma base de donnée. J'ai donc une table "commander" et une table "posséder" qui via une clé étrangère fait le lien entre une commande et les produits quel contient, exemple :
J'enregistre dans la base une commande, elle possède un identifiant, l'id du client qui la réaliser ainsi que la date, puis dans la table posséder j'ai le couple idCommande et référence du produit en clé primaire, puis les champs quantité et taille.
L'enregistrement d'une commande ce réalise parfaitement, mais lors de l'ajout de tuple dans la table "posséder" j'obtiens une erreur intégrité sur le champs idCommande
Mon code est le suivant :
$commande = new Application_Model_Commande(); $commande->setIdClient($idClient); $commandeMapper = new Application_Model_CommandeMapper(); $idCommande = $commandeMapper->save($commande); //enregistre la commande et récupère l'id de celle-ci // Jusque la aucun soucis // Ajout des produits de la commande dans la table posséder $commandePossederMapper = new Application_Model_PossederMapper(); foreach ($articles as $article){ $commandePosseder = new Application_Model_Posseder(); $commandePosseder->setIdCommande($idCommande) ->setRefProd($article['refProd']) ->setIdTaille($article['idTaille']) ->setQuantite($article['quantite']); // Enregistre dans la bd $commandePossederMapper->save($commandePosseder); // ERREUR ICI }
Voila, et le code la fonction save()
public function save(Application_Model_Posseder $commandePosseder) { $data = array( 'idCommande' => $commandePosseder->getIdCommande(), 'refProd' => $commandePosseder->getRefProd(), 'idTaille' => $commandePosseder->getIdTaille(), 'quantite' => $commandePosseder->getQuantite(), ); $this->getDbTable()->insert($data); }
Merci pour l'aide que vous pourrez m'apporter
Dernière modification par shadypierre (23-05-2010 16:36:06)
Hors ligne
Après test il s'avère que si je met ceci
$commandePosseder->setIdCommande(1)
ça fonctionne, c'est donc l'id récupèré ici :
$idCommande = $commandeMapper->save($commande);
qui ne va pas... Mais à priori d'après la doc pour récupérer l'id de l'insertion c'est de cette manière que l'on fait non?
Hors ligne
Problème résolu je ne retourner pas bien le insert() dans ma fonction save(), merci à ce qui on pris le temps de me lire
Hors ligne
Pages: 1