Page 1 sur 1

[Symfony2][ODM] Condition de récupération de variable

Posté : 03 juin 2013, 14:12
par Qunoeil
Bonjour,

Voila je suis débutant dans Symfony2, en développant mon application je me heurte à un petit problème:

Je possède un champ de texte dans lequel je récupére une caractéristique ($nom) d'une entité Formulaire et j'aimerais emettre une condition telle que si un formulaire portant déjà ce nom existe alors l'application le récupère mais si il n'existe pas, alors l'application crée un nouveau Formulaire.

Voici le code de mon controlleur :
public function creerAction()     
{         
$formulaire = new Formulaire();         
$form = $this->get('form.factory')->create(new FormulaireForm(),$formulaire);                   
$request = $this->container->get('request');                             
if ($request->getMethod() == 'POST')          
{            
$form->bindRequest($request);                           
if ($form->isValid())              
{                 
$em = $this->container->get('doctrine_mongodb')->getManager();                                   
//Recuperation du nom du formulaire                 
$donnee = $form->getData();                 
$nom=$donnee->getNom();                                   
//Verification si le formulaire existe                  
if(isset($nom))                 
{                     
$f = $em->find('CpamProjetBundle:Formulaire',$nom);                     
//Si la recuperation n aboutie pas, alors creation du Formulaire                     
if (!$f)                     
{                         
$em->persist($formulaire);                         
$em->flush();                     
}                 
}                 
return new RedirectResponse($this->generateUrl('cpamprojet_definir'));             
}         
}         
return $this->render('CpamProjetBundle:Projet:creer.html.twig',array('form' => $form->createView()));     } 
Sous cette forme, les formulaires se créent mais ne tiennent pas compte de la condition sencé restreindre la création de Formulaire si un Formulaire portant déjà le même $nom existe !

Re: [Symfony2][ODM] Condition de récupération de variable

Posté : 28 juin 2013, 15:24
par Shenryu
Je ne me rappelle plus trop comment cela fonctionne avec mongo (ça date un peu trop -_-) mais ton find ne devrai-il pas prendre en paramètre un tableau associatif ?
array('<nom_de_ta_colonne>' => $nom) ?

Re: [Symfony2][ODM] Condition de récupération de variable

Posté : 02 juil. 2013, 09:33
par Yosh
Ce que tu cherche à faire est expliqué en détail dans la documentation officiel, via le DataTransformer, qui te permet de récupérer une entité à partir d'un champ, et de la créer si celle-ci n’existe pas.

Un peu de lecture http://symfony.com/fr/doc/current/cookb ... rmers.html