Besoin d'aide ?

Sélection de donnée correspondant à un ensemble de clé étrangères

  • Avatar de KYoann
    Membre depuis :
    11/02/2019
    Messages :
    22

    Bonjour à tous.

    Dans cette problèmatique sous laravel 5.8 j'ai 2 tables, plus une table de relation :

    • tickets
    • themes
    • theme_ticket (table de relation, tickets_id, themes_id)

    J'aurais besoin de selectionner tous les tickets correspondant à une liste d'id de thème. Avez vous une idée de la manière de procéder ?

    merci

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2487

    Salut,

    En partant du principe qu'on a un tableau $ids avec les id :

    $tickets = App\Ticket::whereHas('themes', function (Builder $query) use ($ids) {
    $query->->whereIn('themes.id', $ids)
    })->get();
  • Avatar de KYoann
    Membre depuis :
    11/02/2019
    Messages :
    22

    Super merci, Je savais bien qu'une solution "simple" existait sans avoir a faire une boucle avec des ->where().

    Par contre j'ai du supprimer le typage Builder pour que cela fonctionne car ca généré une erreure.

    $tickets = Ticket::whereHas('themes', function ($query) use ($ids) {

    $query->whereIn('themes.id', $ids);

    })->get();
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2487

    On peut aussi aborder la question dans l'autre sens :

    $tickets = Theme::whereIn('id', $ids)->tickets()->get();
  • Avatar de KYoann
    Membre depuis :
    11/02/2019
    Messages :
    22

    Merci pour l'information je prend note !!

Vous ne pouvez pas répondre à ce sujet.