Besoin d'aide ?

les relations

Avatar de styidoutsstidoue
styidoutsstidoue

Hello les amis,

J'ai un petit problème au niveau de la conception de mes relations entre mes tables. Je développe :

j'ai une table User et Intervention, j'aurais 3 colonnes qui vont entrer en jeu: user_id (clée étrangère) , client_id (intervention) et id (user)

Sachant que dans la table user j'ai une colonne statut ( user sera client ou indépendant). La table intervention servira à enregistrer les interventions des indépendants.

Par exemple, je clique sur un bouton, la table intervention va enregistrer l'id du client indépendant qui a été choisi et celui qui a appuyé sur le bouton (client_id)

Donc j'aurais une ligne dans ma table intervention qui aura par exemple l'id 5, user_id 1 , client_id 6

le but c'est lorsque je me connecte avec le user avec l'id 1 (indépendant) je puisse récupérer toutes les interventions où mon id y est ainsi que les noms des personnes qui ont demandé mon aide.

je mets un lien des deux tables au cas où si mes explications sont trop abstraites ^^.

merci à vous https://drawsql.app/fwz/diagrams/test/embed

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Tout ça me parrait assez clair et simple. Trop simple, même... J'aurai bien rajouté au moins une datetime dans ta table intervention pour pouvoir classer et pouvoir filtrer par date ou pas les X derniers.

Sinon, pour récuperer tes données, je ferais un truc du genre:

Dans ton controller:

$mes_datas = Intervention::recup_interventions(Auth::user()->id);

Dans ton model:

public static function recup_interventions ($id){
        $data = DB::table('Intervention')
            ->select('*')
            ->join('user','intervention.client_id',"=","user.id")
            ->where('intervention.user_id', '=', $id)
            ->get();
        return $data;
    }

Mais ça c'est dans le cas où tu as déclaré tes clé étrangères à l'arache (sans one to many etc.). Pour la méthode bien faite, c'est pas ici ==> https://laravel.com/docs/8.x/eloquent-relationships

Avatar de styidoutsstidoue
styidoutsstidoue

rhoalala un grand merci à toi !

En fait oui c'était super simple, je ne m'étais pas penché sur l'utilisation de la classe DB, je m'efforcais d'utiliser eloquent du coup je me perdais un peu. Un grand merci à toi !

Vous ne pouvez pas répondre à ce sujet.