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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Symfony2][ODM] Condition de récupération de variable

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

par Yosh » 02 juil. 2013, 09:33

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

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

par Shenryu » 28 juin 2013, 15:24

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) ?

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

par Qunoeil » 03 juin 2013, 14:12

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 !