La méthode `WHRODED () 'dans Laravel est spécifiquement conçue pour fonctionner avec des relations de modèle éloquentes. Il inclut conditionnellement les données relationnelles dans les réponses aux ressources API uniquement si la relation a été désirée chargée sur le modèle éloquent. Cette méthode aide à éviter les requêtes de base de données inutiles et à garder les réponses API Lean en incluant uniquement des données connexes lorsqu'elle est réellement chargée.
Contexte d'utilisation de `lorsque téléchargé () '
- Modèles et relations éloquents: `lorsque Tolaked ()` vérifie si une relation sur un modèle éloquent a été chargée à l'aide de méthodes comme `avec ()` ou `charge () '. Si la relation est chargée, elle renvoie les données connexes; Sinon, il ne renvoie rien ni une valeur par défaut. Ce comportement est étroitement associé à la méthode interne d'Eloquent `` RelationLoDed () `qui détermine si les données de relation sont disponibles sur l'instance du modèle [1] [7] [8].
- Ressources de l'API: il est couramment utilisé à l'intérieur des classes de ressources API Laravel pour inclure conditionnellement les ressources ou les collections connexes en fonction de la charge des relations avec un problème, améliorant les performances et évitant le problème de requête N + 1 [1] [8].
peut-il «quand télécharger ()» être utilisé avec des bibliothèques tierces?
- Aucun support direct en dehors des modèles éloquents: puisque `lorsque téléchargé ()` s'appuie sur l'état interne du modèle éloquent pour vérifier si une relation est chargée (`` RelationDed () 'Méthode), il est intrinsèquement conçu pour les modèles éloquents et leurs relations. Les bibliothèques tierces qui n'étendent pas ou n'imitent pas les modèles éloquents et leurs mécanismes de chargement relationnels ne peuvent pas utiliser directement `lorsque téléchargé () '.
- Solution: Si une bibliothèque tierce renvoie des objets ou des collections qui ne sont pas des modèles éloquents, vous ne pouvez pas utiliser `lorsque téléchargé ()` tel. Vous devez implémenter manuellement la logique conditionnelle similaire ou envelopper ces objets dans une ressource personnalisée qui imite le comportement. Alternativement, vous pouvez vérifier manuellement si les données connexes sont présentes avant de l'inclure dans la réponse.
Résumé
- `lorsque Tolaked ()` est conçu pour fonctionner exclusivement avec des modèles éloquents et leurs relations chargées.
- Cela dépend de l'état de chargement de la relation interne d'Eloquent, il ne peut donc pas être utilisé directement avec des bibliothèques tierces qui n'utilisent pas de modèles éloquents.
- Pour inclure conditionnellement les données connexes provenant de sources tierces, vous devez implémenter vos propres vérifications conditionnelles ou emballages de ressources.
Cela fait de `lorsque téléchargé () 'un outil puissant pour optimiser les réponses de l'API Laravel mais limité au contexte ORM éloquent [1] [7] [8].
Citations:
[1] https://henestrosa.dev/blog/how-to-use-wenloaded-in-laravel-api-résainces
[2] https://laracasts.com/discuss/channels/laravel/api-resource-using-count-with-wenloaded
[3] https://laravel.com/docs/12.x/eloquent-resources
[4] https://stackoverflow.com/questions/76828050/how-to-get-a-single-field-from-a-laravel- whenloaded-resource
[5] https://www.youtube.com/watch?v=ls7m14ECasu
[6] https://stackoverflow.com/questions/66675594/can-i-Use-With-instead-load-Laravel-elognent
[7] https://laraveldaily.com/post/laravel-api-Sources-relations- when-methods
[8] https://laravel-news.com/whenloaded