Besoin d'aide ?

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

Avatar de KYoann
KYoann

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

Posté il y a 1 an
Avatar de bestmomo
bestmomo

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();
Posté il y a 1 an
Avatar de KYoann
KYoann

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();
Posté il y a 1 an
Avatar de bestmomo
bestmomo

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

$tickets = Theme::whereIn('id', $ids)->tickets()->get();
Posté il y a 1 an
Avatar de KYoann
KYoann

Merci pour l'information je prend note !!

Posté il y a 1 an

Vous ne pouvez pas répondre à ce sujet.