Laravel'deki `` Whated () `yöntemi, etkili model ilişkileri ile çalışmak için özel olarak tasarlanmıştır. Koşullu olarak API kaynak yanıtlarındaki ilişki verilerini, yalnızca ilişkinin etkili modele istekli olması durumunda içerir. Bu yöntem, gereksiz veritabanı sorgularının önlenmesine yardımcı olur ve API yanıtlarının yalnızca gerçekten yüklendiğinde ilgili verileri dahil ederek yalın tutar.
`` Whoaded () '' in kullanım bağlamı
- Eloquent modeller ve ilişkiler: `whilloaded ()` `()` `veya` load () 'ile `` `` veya `` load ()' gibi yöntemler kullanılarak yüklü olup olmadığını kontrol eder. İlişki yüklenirse, ilgili verileri döndürür; Aksi takdirde, hiçbir şey veya varsayılan değer döndürmez. Bu davranış, ilişki verilerinin model örneğinde [1] [7] [8] mevcut olup olmadığını belirleyen Eloquent'in dahili yöntemi `ilişkisi ()` ile sıkı bir şekilde birleştirilir.
- API Kaynakları: Laravel API kaynak sınıflarında, ilişkilerin istekli olup olmadığına, performansı iyileştirmeye ve N+1 sorgu probleminden kaçınmaya bağlı olarak koşullu olarak ilgili kaynakları veya koleksiyonları içerecek şekilde kullanılır [1] [8].
Üçüncü taraf kütüphaneleriyle kullanılabilir mi?
- Etkili modellerin dışında doğrudan destek yok: `` whated () `, bir ilişkinin yüklenip yüklenmediğini kontrol etmek için etkili modelin dahili durumuna dayandığından (` ilişkili () `yöntemi), doğal olarak etkili modeller ve ilişkileri için tasarlanmıştır. Etkili modelleri genişletmeyen veya taklit etmeyen üçüncü taraf kütüphaneler ve bunların ilişki yükleme mekanizmalarını doğrudan `` Whoaded () 'olarak kullanamaz.
-Çözümler: Üçüncü taraf kütüphanesi, etkili model olmayan nesneleri veya koleksiyonları döndürürse, `` Whoaded () `` olarak kullanamazsınız. Benzer koşullu mantığı manuel olarak uygulamanız veya bu nesneleri davranışı taklit eden özel bir kaynağa sarmanız gerekir. Alternatif olarak, yanıt vermeden önce ilgili verilerin mevcut olup olmadığını manuel olarak kontrol edebilirsiniz.
Özet
- `whoaded ()` `sadece etkili modeller ve yüklü ilişkileri ile çalışmak üzere oluşturulmuştur.
- Eloquent'in iç ilişki yükleme durumuna bağlıdır, bu nedenle doğrudan etkili modeller kullanmayan üçüncü taraf kütüphanelerle kullanılamaz.
- Üçüncü taraf kaynaklardan gelen ilgili verileri koşullu olarak dahil etmek için kendi koşullu kontrollerinizi veya kaynak sargılarınızı uygulamanız gerekir.
Bu, `` whoaded () `` `` Laravel API yanıtlarını optimize etmek için güçlü bir araç haline getirir, ancak etkili ORM bağlamıyla sınırlıdır [1] [7] [8].
Alıntılar:
[1] https://henestrosa.dev/blog/how-to-use-wenloaded-in-laravel-api-resources
[2] https://laracasts.com/discuss/channels/laravel/api-resource-ususing-count-with-whenloaded
[3] https://laravel.com/docs/12.x/eloquent-resources
[4] https://stackoverflow.com/questions/76828050/how-to-get-a-a--single-frand-from-ravel-whenloaded-resource
[5] https://www.youtube.com/watch?v=ls7m14ecasu
[6] https://stackoverflow.com/questions/66675594/can-i--with-instead-load-favel-eloquent
[7] https://laraveldaily.com/post/laravel-api-resources-relations-when-methods
[8] https://laravel-news.com/ Whenloaded