Laravel Éloquent plusieurs-à-Plusieurs requête dans laquelle
Dans mon application j'ai mis à jour une relation de one-to-many
à many-to-many
et je vais essayer de trouver un moyen de conserver des fonctionnalités associées.
Disons que j'ai deux tables liées, par exemple, les chiens et les propriétaires. Si j'ai un tableau de propriétaires et que j'essaie de faire une liste de chiens id pour les propriétaires, comment dois je faire avec éloquence?
Question semblable a été posée ici:
https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-data-for-an-array-of-elements
Alors, Comment pourrais-je obtenir le Dog
modèles où Owner
est dans un tableau ?
Même chose que $associatedDogs = Dog::whereIn('owner_id',$ListOfOwners)->get();
est pour un One-To-Many
relation, mais pour Many-to-Many
.
OriginalL'auteur Angelin Calu | 2017-03-09
Vous devez vous connecter pour publier un commentaire.
Utiliser le
whereHas()
méthode:whereHas
surwith
? Quelle est la différence entre les deux dans ce cas? Est-il même pas faire une différence?Tant pis, j'ai trouvé l'explication ici: stackoverflow.com/a/30232227/2012740
oui,
with()
ne fonctionnera pas pour vous, car il charge en matière de données.Je n'ai pas réellement essayé le
with
méthode à cause de ce que j'ai lu. Donc si j'ai bien compris, qu'il sera sans doute aussi, mais désireux de charge de laowner
s associée à ladog
spas de
with()
ne fonctionnera pas. Il va charger tous les chiens et filtré propriétaires.whereHas()
charge uniquement les chiens avec les propriétaires qui sont dans la liste. Juste essayer les deux et vous verrez la différence.OriginalL'auteur Alexey Mezenin
Essayer
OriginalL'auteur EddyTheDove