Salut, j'ecrit code pour faire valdiation des champ text puis faire persist

voila code:


        public function addAction() {
        $em = $this->getDoctrine()->getManager();
        $request = $this->getRequest();

        if ($request->getMethod() == 'POST') {
        $x= $request->request->get('k');
          for( $i=1;$i<=$x;$i++){

        $nom = $request->request->get('nom'.$i);
        $prenom = $request->request->get('prenom'.$i);
        $age = $request->request->get('age'.$i);
        $class = $request->request->get('sexe'.$i); 

           $cop = new Apps();  
          $cop->setAge($age);
          $cop->setNom($nom);
          $cop->setPrenom($prenom);
          $cop->setClass($class);
          $cop->setPath("path test");
          $validator = $this->get('validator');
          $errors = $validator->validate($cop);
          if (count($errors)>0) {
              foreach ($errors as $error) {
                return new Response($error->getMessage());
              }

          }
          $em->persist($cop);
          $em->flush();

           }
           return new Response('valide');
            } //end for

         return $this->render('MedBundle:Apps:form.html.twig');

        }

la travaille fonctionne bien mais la probléme qui je trouve que quand il saise un valeur qui exsite dans la base de donnée il affiche message "cette valeur existe déja", comment je peut personnaliser la message d'erreur qui retour quand il saisie valeur existe dans la base , j'ai plusieurs champs dans la base de donnée, comment faire pour chaque champ un message d'erreur pour lui

merci d'avance

1 réponse


Tu dois surement avoir des champs dans la base qui sont considéré comme étant UNIQUE, dans ta bd vérifie que tes champs que tu insères n'ont pas la contrainte UNIQ.