Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-04-2010 18:03:55

yoga20
Membre
Date d'inscription: 23-04-2009
Messages: 33

[1.8] Personnaliser les messages d'erreurs

supprime des objets enfants j'obtiens le message suivant :

Code:

Fatal error: Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`fredon/plantation`, CONSTRAINT `plantation_ibfk_1` FOREIGN KEY (`iduniteHomogeneDeProspection`) REFERENCES `unitehomogenedeprospection` (`iduniteHomogeneDeProspection`))' in /data/http/fredon/Zend/Db/Statement/Pdo.php:238 Stack trace: #0 /data/http/fredon/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array) #1 /data/http/fredon/Zend/Db/Adapter/Abstract.php(467): Zend_Db_Statement->execute(Array) #2 /data/http/fredon/Zend/Db/Adapter/Pdo/Abstract.php(235): Zend_Db_Adapter_Abstract->query('DELETE FROM `un...', Array) #3 /data/http/fredon/Zend/Db/Adapter/Abstract.php(632): Zend_Db_Adapter_Pdo_Abstract->query('DELETE FROM `un...') #4 /data/http/fredon/Zend/Db/Table/Abstract.php(1064): Zend_Db_Adapter_Abstract->delete('unitehomogenede...', 'iduniteHomogene...') #5 /data/http/fredon/application/default/controllers/Uni in /data/http/fredon/Zend/Db/Statement/Pdo.php on line 238

Le message précédent m'averti et me dit que je ne peux pas supprimer un objet enfant, ma question est :

Comment afficher un message convenable à l'internaute en lui indiquant qu'il doit supprimer l'objet parent.
Merci.

Dernière modification par yoga20 (28-04-2010 18:04:25)

Hors ligne

 

#2 28-04-2010 22:15:07

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [1.8] Personnaliser les messages d'erreurs

Heu normalement c'est plutôt dans l'ordre inverse non? Tu supprime le parent et ça merde parce qu'il ya des enfants, dans l'autre sens ça doit pas poser de probleme puisque si tu supprime le parent tu supprime tous les enfants

Hors ligne

 

#3 29-04-2010 04:21:33

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [1.8] Personnaliser les messages d'erreurs

Dit comme ça, il faut être un sacré meurtrier pour tuer les parents et les enfants ! C'est pas un peu trop cruel tout ça wink

Je crois que t'as requête devrait supprimer tout les entités reliés avant tout. Les contraintes d'une foreign key ne servent qu'à ça !

Hors ligne

 

#4 29-04-2010 08:37:27

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.8] Personnaliser les messages d'erreurs

@yoga20 : effectivement +1 pour probitaille.

Sinon si tu veux afficher un message correct sur une exception, il faut la "catcher". Regarde try / catch / throw dans la doc PHP. En gros ça devrait ressembler à :

Code:

try {
  $db->delete(...);
} catch (Exception $e) {
  // je fais ce qui va bien pour afficher une erreur convenable
}

regarde bien le fonctionnement des exceptions, c'est hyper pratique pour gérer proprement des erreurs.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 29-04-2010 09:24:07

yoga20
Membre
Date d'inscription: 23-04-2009
Messages: 33

Re: [1.8] Personnaliser les messages d'erreurs

Merci pour vos réponses, je suis d'accord avec vous mais le but c'est justement d'empêcher la suppression d'un parent qui a des enfants. C'est pour cela que dans mais règle de clefs étrangère  je n'ai pas affecté d'actions => on delete , no action et on update , no action. J'ai donc un message d'erreur, je vais essayer avec try, catch pour traiter l'erreur et l'afficher à l'internaute.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages