[Doctrine] Doctrine Validator Exception

Rechercher

[Doctrine] Doctrine Validator Exception

Par ZikoNFS  -  4 reponses  -  Le 17/09/2010 03:26  -  Editer  - 

Bonjour,

try{      $user = new User();      $user->login   =   (!empty($_POST['user_login'])) ? $_POST['user_login'] : null;      $user->email   =   (!empty($_POST['user_email'])) ? $_POST['user_email'] : null;      $user->password =   (!empty($_POST['user_password'])) ? $_POST['user_password'] : null;      $user->gender  =  (!empty($_POST['user_gender'])) ? $_POST['user_gender'] : null;       $article = new Article();      $article->title = null;      $article->content = "Contenu de l'article";      $article->User = $user;       $article->save();    }    catch(Doctrine_Validator_Exception $e){            $records = $e->getInvalidRecords(); // Get the invalid records grouped by Object      foreach($records as $r)      {        $error_stack = $r->getErrorStack()->toArray();        echo '<pre>';print_r($error_stack); echo'</pre>';      }    }

 

 

$error_stack est un Array qui contient deux Arrays; un pour chaque Objet (User, Article). Le seul hic, c'est que je ne sais pas quel Array va avec quel Objet depuis $error_stack car ils ne sont pas identifés.

Comment faire pour reconnaitre quel Array va avec quel Objet à partir du code ?

Merci à vous, si ce n'est toujours pas clair, n'hésitez pas à poser des questions.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 17/09/2010 22:54  -  Haut de page  - 

Je ne garantis rien, mais vérifie dans le backtrace de l'exception si tu n'as pas d'indication sur l'objet qui l'a levée.

 
Par ZikoNFS  -  Le 17/09/2010 23:42  -  Haut de page  - 

Pour être franc, la racine de mon problème, c'est que je veux avoir mes propres messages personnalisé qui seront affiché lors d'une exception. Par exemple, "Vous devez saisir votre adresse de courrier." quand l'utilisateur ne rempli pas le champs "email" du formulaire en question. Est-ce que Doctrine gère les messages à afficher pour les exceptions de validation ? surtout quand le site est en multilingue.

 
Par Cyrano  -  Le 17/09/2010 23:57  -  Haut de page  - 

Pour autant que je sache, Doctrine est un ORM, ce n'est pas fait pour gérer tes messages d'erreurs. Par ailleurs, tu peux gérer toi-même les messages pour chaque exception qui est levée.

Ta question de départ suggérait que tu voulais savoir quel objet avait levé une exception. Donc en analysant le backtrace, tu peux trouver le déroulement des appels qui ont été faits à différents fichiers dans un ordre chronologique. Partant de là, tu devrais pouvoir manipuler ces messages dynamiquement pour en extraire le nom de l'objet recherché et envoyer un message approprié en sortie.

 
Par ZikoNFS  -  Le 18/09/2010 03:48  -  Haut de page  - 

Merci beaucoup Cyrano, ça m'a bien aider.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |