IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

foreach et if sur entité indomptable [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 125
    Points : 108
    Points
    108
    Par défaut foreach et if sur entité indomptable
    Bonsoir,
    j'ai un pb de boucleeeee, help me.

    je souhaite lorsque mon entité uzer n'est pas encore liée à mon entité uzercateg les lier sinon ne rien faire.
    j'essaye avec une boucle foreach mais je ne trouve pas comment faire le test ensuite ...

    ma boucle est ligne 24 à 31.

    voici mon controleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
        public function editAction($id)
        {
            $repository = $this->getDoctrine()
                               ->getManager()
                               ->getRepository('SBUserBundle:Uzer');
            $uzer = $repository->find($id);
     
            $form = $this->createForm(new UzerType, $uzer);
            if($uzer === null)
            {
                throw $this->createNotFoundException('Vous n\'avez pas encore ajouté d\'utilisateur');
            }
            $request = $this->get('request');
            if ($request->getMethod() == 'POST') {
              $form->bind($request);
              ////
     
              $repository = $this->getDoctrine()
                                 ->getManager()
                                 ->getRepository('SBUserBundle:UzerCateg');
              $list_cat = $repository->findAll();
     
              $list_uzer_categ = $uzer->getUzercategs();
              foreach($list_uzer_cat as $catcat)
              {
              foreach($list_cat as $categg)
              {
               if( 
                $uzer->addUzercateg($categg);
              }
              }
     
              ////
              if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($uzer);
                $em->flush();
                return $this->redirect($this->generateUrl('uzer_gest_view_user', array('id' => $uzer->getId(),'uzer'=>$uzer)));
                }
              }
            return $this->render('SBUserBundle:UzerGest:edituzer.html.twig', array('id' => $uzer->getId(),'form' => $form->createView()));
        }

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    à la ligne 28 il y a un "if ("

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Bonjour,

    Est ce uzer qui peux avoir plusieurs uzercateg ou l'inverse ?

    Normalement, tu as juste à tester si l'entité possède une relation avec l'autre avec getEntitéLié si elle est à null, c'est qu'il n y a pas d'objet.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 125
    Points : 108
    Points
    108
    Par défaut
    bonjour,
    oui uzer peut avoir plusieurs uzercateg
    et c'est bien la mon problème pour poser ma condition.
    plutard il me faudra meme rajouter une condition en fonction du role de uzer et si il a le role qui lui donne accès a cette categorie.

    effectivement a la ligne 28 il y a un "if(" c'etait le prémisse de mon code pour faire mes tests mais je ne sais pas quoi faire.

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    En relisant ton code, peux tu me confirmer ce que je comprends ?

    Tu souhaites vérifier si l'utilisateur a bien toutes les catégories et sinon alors tu ajoutes les catégories manquantes.

    Est cela ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 125
    Points : 108
    Points
    108
    Par défaut
    oui,
    avec réflexion je pense faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    foreach( $list_cat as $categg )
    {
      $valid_insertion = false;
      foreach( $list_uzer_categ as $catcat )
      {
        if( $categg == $catcat )
        {
           $valid_insertion = true;
        }
      }
      if( $valid_insertion == true )
      {
        $uzer->addUzercateg( $categg )
      }
    }
    je vais tester mais je pense il doit y avoir un problème.
    peut être devrais-je faire une boucle pour remplir un tableau et ensuite faire les ajout en fonction de ce tableau.

    après test
    effectivement ca bug ...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 125
    Points : 108
    Points
    108
    Par défaut
    Bon je crois que j'ai trouvé je poste au cas où vous pourriez me conseiller mais pour le moment ca fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    foreach( $list_cat as $categg )
    {
      $valid_insertion = 'true';
      foreach( $list_uzer_categ as $catcat )
      {
        if( $categg == $catcat )
        {
           $valid_insertion = 'false';
        }
      }
      if( $valid_insertion == 'true' )
      {
        $uzer->addUzercateg( $categg );
      }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Boucle sur entité d'une relation M2O
    Par SAmpistaroy dans le forum Symfony
    Réponses: 1
    Dernier message: 15/07/2013, 11h10
  2. foreach qui bugue sur le serveur mais pas en local
    Par CinePhil dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2012, 00h14
  3. foreach à l'envers sur un objet
    Par dedis dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2011, 21h00
  4. [MCD] contrainte sur entités
    Par new_wave dans le forum Schéma
    Réponses: 14
    Dernier message: 10/02/2009, 12h36
  5. [order by] problème sur entité fille
    Par loopx dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/02/2008, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo