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

Doctrine2 PHP Discussion :

Jointure entre 3 tables dont une de la récupération de variable de session


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2015
    Messages : 42
    Par défaut Jointure entre 3 tables dont une de la récupération de variable de session
    voilà encore!
    Débutant sur Symfony 2, et sur un gros projet, je bloque presqu'à chaque étape.

    En fait j'ai par exemple 3 tables "Ecole" , "Perso", et "user" de FOSUserBundle que j'ai surchargé et nommé "Utilisateurs" .

    A la connexion d'un utilisateur je dois afficher uniquement les données qui concernent sont "Ecole" et toutes les opérations qu'il aurait à réaliser doivent être uniquement liées à celle-ci.

    "Utilisateurs" ManyToOne avec "Ecole"
    "Perso" ManyToOne avec "Ecole"

    ce que j'ai essayé de faire est presque ridicule.
    Si quelqu'un a déjà un truc pareil qui puisse m'inspirer.
    Je plante totalement au niveau de la requête niveau jointure et paramètres.

    je ss Vrmt calé la depuis 3 jrs svp sortez moi de la

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Par défaut
    Citation Envoyé par DJYAM'S Voir le message

    A la connexion d'un utilisateur je dois afficher uniquement les données qui concernent sont "Ecole" et toutes les opérations qu'il aurait à réaliser doivent être uniquement liées à celle-ci.
    Là tu peux utiliser les sessions.

    Citation Envoyé par DJYAM'S Voir le message

    Je plante totalement au niveau de la requête niveau jointure et paramètres.
    Il va falloir que tu postes ce que t'as tenté afin qu'on puisse situer le problème et comprendre la structure de tes tables.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2015
    Messages : 42
    Par défaut
    Si les session. Mes idées dans le sens je les trouve assez ridicules mais bon je vais les poster tout à l'heure

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2015
    Messages : 42
    Par défaut PersonnelRepository puis PersonnelController en considérant les relations sus-mentionnées
    # <?php

    namespace stage\AutoBundle\Entity;

    /**
    * PersonnelRepository
    *
    * This class was generated by the Doctrine ORM. Add your own custom
    * repository methods below.
    */
    use Doctrine\ORM\EntityRepository;
    class PersonnelRepository extends \Doctrine\ORM\EntityRepository
    {

    Public function AffichePersonnel($id)
    {
    $query = $this->_em->createQuery('SELECT p.nomPersonnel, p.prenomPersonnel, p.fonctionPersonnel FROM stageAutoBundle: Personnel p, stageUtilisateursBundle:Utilisateurs u
    JOIN p.AutoEcole a
    WHERE p.AutoEcole = :id AND u.AutoEcole= :id');

    // Utilisation de getSingleResult car la requête ne doit retourner qu'un seul résultat
    $query->setParameter('stageAutoBundle: Personnel' , array('id'=>$id));
    return $query->getResult();
    }
    }
    #


    et la classe PersonnelController

    #
    <?php
    /**
    * Personnel controller.
    *
    */
    class PersonnelController extends Controller
    {

    /**
    * Lists all Personnel entities.
    *
    */
    public function indexAction()
    {
    $session= $this->getRequest()->getSession();
    $autoecole= $session->get('autoecole');
    $repository = $this
    ->getDoctrine()
    ->getManager()
    ->getRepository('stageAutoBundle: Personnel')
    ;

    $listePersonnel = $repository->AffichePersonnel($autoecole);

    return $this->render('stageAutoBundle: Personnel:index.html.twig', array(
    'Personnel'=>$listePersonnel
    ));
    }
    }
    #

    Désolé pour la qualité du poste, je me sers d'un smartphone dc...

    Merci de consacrer qq minutes à mon souci

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Par défaut
    Salut selon ton analyse,est-ce qu'il y a une relation entre la table user et école?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2015
    Messages : 42
    Par défaut
    Oui du ManyToOne (unidirectionnelle) du côté user. j'ai surchargé FOSUserBundle donc la table est désormais nommée "Utilisateurs" .

Discussions similaires

  1. [Mapping] Jointure entre 2 tables en une seule classe
    Par caparenlive59 dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/01/2012, 16h02
  2. Réponses: 11
    Dernier message: 30/08/2010, 17h24
  3. [MySQL] Faire une jointure entre deux tables qui ne sont pas dans la même base de données
    Par sandddy dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 03/04/2008, 14h18
  4. Jointure entre deux champs d'une même table
    Par oubli dans le forum Requêtes
    Réponses: 8
    Dernier message: 11/12/2007, 16h20
  5. Optimisation d'une jointure entre 3 tables
    Par gavelin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/12/2005, 09h52

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