Bonjour,

j'ai une table qui possède 2 relations, dont une dépend de l'autre ... Voici un exemple de ce que dois faire :

prestations

  • id
  • name
  • prestation_type_id (savoir si c'est un 'services' ou un 'jobs')
  • element_id (l'id du service ou du job)

prestation_types

  • id
  • name

services

  • id
  • name

jobs

  • id
  • name

Je ne vois pas comment dans mon model 'Prestation' je peux récupérer l'élement (service ou job) en fait ... Aucun soucis pour récupérer le 'prestation_type' mais l'élement je coince un peu beaucoup :p

Donc si quelqu'un se sent d'humeur charitable ... je suis preneur d'un coup de pouce :)

Déjà merci et bonne journée :)

3 réponses


Joouul
Auteur

Pour info, dans la table 'prestation_types' actuellement j'ai que 2 entrées à savoir 'services' et 'jobs' et ensuite element_id sert à aller chercher le contenu dans la bonne table. Je suis obligé de faire comme ça car il y'aura d'autre 'prestation_types' dans le futur avec chaqu'un leur propre traîtement par la suite ...

As-tu regardé le "HasOneThrough' ? https://laravel.com/docs/9.x/eloquent-relationships#has-one-through

Rien ne devrait t'empêcher de faire un Where en plus dans cette relation.

Désolé de pas être plus précis,, mes compétences en Laravel sont proche du néant ^^'

Joouul
Auteur

J'ai checké mais HasOneThrough permet de créer une relation entre 2 models sans forcément avant de lien direct. Ici ma "prestation" peut soit être de type "services" ou "jobs" et donc en fonction de ça, aller dans la table correspondante chercher l'info avec element_id