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 :

Soucis ID en Laravel


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut Soucis ID en Laravel
    Bonjour,

    J'ai besoin de votre aide concernant un petit soucis que je ne parviens pas à résoudre.

    Dans mon pannel, j'ai deux type de rôles: admin et former.



    Actuellement, j'ai 3 utilisateurs dans mon application.

    • le premier rôle est l'admin, le pseudo est aussi admin et l'adresse email est admin@gmail.com
    • le second rôe est un former , il a comme pseudo Remace et l'adresse email est test@gmail.com
    • le troisième user est toujours un former , il a comme pseudo Gofette et l'adresse email est ledeluge1990@gmail.com




    Pour information, l'admin est le seul à pouvoir créer des enregistrements...

    Ici, j'ai deux enregistements (il s'agit des infos personnelles de chaque former).



    Maintenant, mon objectif est que chaque former (utilisateur) puisse consulter ses informations personnelles.

    Lorsque, je me connecte avec les identifiants du pseduo Remace (email adresse test@gmail.com)

    J'aperçois ceci:



    En fait, je récupère les renseignements de Gofette et non ceux de Remace, c'est assez embêtant...

    Maintenant, si je veux me connecter avec le user Gofette (email adresse ledeluge1990@gmail.com)

    Rien ne s'affiche...



    Mon problème doit être au niveau de ma fonction index() ???

    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
    public function index()
     
        {
     
     
     
            if($has_role = auth()->user()->hasRole('admin')){
     
                $garages = Garage::oldest()->paginate(5);
     
                return view('admin.garages.index', compact('garages'));
     
            } else{
     
                $garages = Garage::where('id', Auth::user()->id)->paginate(5);
     
                return view('admin.garages.index', compact('garages'));
     
            }
     
        }
    Je pense que le problème est dans cette ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $garages = Garage::where('id', Auth::user()->id)->paginate(5);
    Voici comment sont définis mes models:

    Model User

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function garage()
     
        {
     
            return $this->hasOne('App\Garage', 'id', 'id');
     
        }
    Model Garage

    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
    class Garage extends Model
     
    {
     
        //
     
        protected  $fillable = ['user_id', 'nom', 'adresse', 'fk_localite', 'telephone', 'email'];
     
     
     
        public function localites(){
     
     
     
            return $this->belongsTo('App\Localite' , 'fk_localite');
     
        }
     
     
     
        public function user()
     
        {
     
            return $this->belongsTo('App\User', 'id', 'id');
     
        }
     
     
     
    }
    Je vous remercie par avance de votre aide et vos explications.

  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
    Je vais faire des suppositions :

    La table User est celle qui comprend Name->email->date/time added->role dans laquelle ce trouve votre admin ?
    J'imagine que oui, hors dans cette table vous ne dite pas qu'il y a une colonne id, hors je pense que celle-ci existe !

    du coup :

    Admin possède l'id 1
    Remace possède l'id 2:
    Gofette possède l'id 3

    par contre dans la table avec les infos personnelles :

    Remace possède l'id 1 et Gofette l'id 2

    Du coup quand vous faites ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $garages = Garage::where('id', Auth::user()->id)->paginate(5);
    Remace à l'id 2 dans Auth::user()->id , mais dans la table garage c'est Gofette qui a l'id 2 CQFD

    En fait vous avez mal conceptualiser vos tables et il doit y avoir un lien entre User et Garage.

    Bonne soirée.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Bonsoir MaitrePylos,

    Merci pour votre aide.

    Citation Envoyé par MaitrePylos Voir le message
    La table User est celle qui comprend Name->email->date/time added->role dans laquelle ce trouve votre admin ?
    J'imagine que oui, hors dans cette table vous ne dite pas qu'il y a une colonne id, hors je pense que celle-ci existe !
    Oui effectivement, dans ma table User j'ai les champs suivants: id, name, email, password.

    Citation Envoyé par MaitrePylos Voir le message
    Remace à l'id 2 dans Auth::user()->id , mais dans la table garage c'est Gofette qui a l'id 2 CQFD

    En fait vous avez mal conceptualiser vos tables et il doit y avoir un lien entre User et Garage.
    Dans mon premier poste, j'ai fait une liaison entre mon model User et Garage , c'est incorrect ?

    Bonne soirée également

  4. #4
    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
    Sorry, je n'avais pas fais attention, du coup ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $garages = Garage::where('id', Auth::user()->id)->paginate(5);
    devrait-être cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $garages = Garage::where('user_id', Auth::user()->id)->paginate(5);

    de même que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function garage()
     
        {
     
            return $this->hasOne('App\Garage', 'id', 'id');
     
        }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
       public function user()
     
        {
     
            return $this->belongsTo('App\User', 'id', 'id');
     
        }

    devrait pointé sur la clé primaire te clé secondaire.....dans votre code tout pointe vers les clés primaires

  5. #5
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Par défaut
    Bonsoir MaitrePylos,

    Merci pour ton aide, mon problème est résolu.

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

Discussions similaires

  1. ASM + DELPHI ... soucis ... mais top intéressant !
    Par - Robby - dans le forum Langage
    Réponses: 9
    Dernier message: 21/11/2003, 15h58
  2. [langage] ptit souci de syntaxe
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2003, 10h28
  3. [File et Directory ListBox] Soucis de filtre
    Par Mercilius dans le forum Composants VCL
    Réponses: 8
    Dernier message: 04/04/2003, 16h17
  4. Réponses: 4
    Dernier message: 16/02/2003, 12h16
  5. Réponses: 2
    Dernier message: 03/10/2002, 17h24

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