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

Laravel PHP Discussion :

Récupérer données sur table pivot avec attribut en plus [5.1]


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Par défaut Récupérer données sur table pivot avec attribut en plus
    Bonjour,

    J'ai des professeurs et des eleves, tout deux sont dans la table "users" avec un role_id pour distinguer chacun (1: eleve / 2: prof)

    J'ai une relation n:n entre cette table Users et une table Classes, et la table pivot class_user contient un attribut en plus qui est l'année

    Un élève etudie dans 0 ou plusieurs classes (en fonction de l'année)
    (ex: en 2016 il est en classe C3 / en 2017 C4 / en 2018 non inscrit / en 2019 C3 ...etc)
    Un professeur donne cours à 0 ou plusieurs classes (en fonction de l'année)
    (ex: Mr Dupont enseigne en 2016 à C1, C2, C3/ en 2017 à C2,C3 / ...etc)

    Je me retrouve avec une table pivot du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    |   User  |  Class | Year |
    | ------  | ------ | ---- |
    | Eric    |   c3   | 2016 |
    | Eric    |   c4   | 2017 |
    | Eric    |   c3   | 2019 |
    | Dupont  |   c1   | 2016 |
    | Dupont  |   c2   | 2016 |
    | Dupont  |   c3   | 2016 |
    | Dupont  |   c2   | 2017 |
    | Dupont  |   c3   | 2017 |
    | ......  | .....  | ...  |
    J'ai créé mes relations belongsToMany, le seul soucis c'est que je n'arrive pas a récuperer les eleves d'un professeur en particulier, pour une année en particulier.

    J'arrive à récuperer:

    les classes d'un professeur pour une année :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $classes = User::where('id', 1)->first()
    			->classes()
    			->wherePivot('annee', 1)
    			->get();
    Les utilisateurs d'une classe pour une année (il suffit ensuite de distinguer les élèves des profs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $users = Classe::find(10)->load('users')->users()->wherePivot('annee', 1)->get();

    par contre pour récuperer les eleves d'un professeur pour une année c'est la que ca devient compliqué.
    J'ai essayé de faire un foreach sur $classes, puis de récuperer les utilisateurs mais il me renvoie beaucoup trop de resultats

    Merci pour votre aide

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    A aucun moment vous ne distinguer la différence entre élève et prof (1|2)
    Vous devez donc réaliser une sous requête.
    En Laravel 5.1 il est possible de faire un select classique grâce à DB::select('select * from.......')

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Réponses: 39
    Dernier message: 17/06/2008, 18h08
  2. Récupérer données sur serveur via GPRS
    Par Kemanke dans le forum C++
    Réponses: 0
    Dernier message: 13/02/2008, 10h50
  3. [cURL] Récupérer données d'un site avec sessions
    Par Anified dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/10/2007, 16h57
  4. Réponses: 5
    Dernier message: 28/03/2007, 15h03
  5. Comment récupérer données sur DD de portable hs
    Par rond24 dans le forum Composants
    Réponses: 23
    Dernier message: 07/03/2006, 19h20

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