Problème
a
, avec
et Où est
peut parfois être déroutant pour les développeurs débutants. Donnons une certaine perspective sur ce que chacun de ces signifiait
Solution
avec()
est généralement utilisé avec un chargement impatient, ce qui est un moyen rapide de tirer des modèles connexes. Fondamentalement, cela signifie que, avec le modèle principal, Laravel préchargera la ou les relations répertoriées (s). Ceci est bénéfique lorsque vous devez charger des données supplémentaires et que vous souhaitez éviter de faire N + 1
DB BAD PRATIQUES. Avec un chargement impatient, vous ne faites qu'une seule requête DB supplémentaire au lieu de potentiellement des centaines de requêtes supplémentaires.
Exemple:
Utilisateur> Hasmany> OrganisationA
a()
est utilisé pour filtrer le modèle de sélection en fonction de la relation sélectionnée. C'est essentiellement une méthode de relations. Si vous utilisez juste a («organisation»)
, En utilisant le même exemple d'utilisateurs et d'organisations, cela signifierait que cela attirera tous les utilisateurs qui ont au moins une organisation dans leur «portefeuille».
Exemple:
Utilisateur> Hasmany> OrganisationOù est
Où est()
est presque le même que a()
. Il vous permet simplement de spécifier des filtres supplémentaires pour le modèle connexe.
Exemple:
Utilisateur> Hasmany> Organisation