`Kad ielādēta () metode Laravelā ir īpaši izstrādāta darbam ar daiļrunīgām modeļa attiecībām. Tas nosacīti ietver datus par attiecībām API resursu atbildēs tikai tad, ja attiecības ir nepacietīgas, izmantojot daiļrunīgo modeli. Šī metode palīdz izvairīties no nevajadzīgiem datu bāzes vaicājumiem un uztur API atbildes liesas, iekļaujot saistītos datus tikai tad, kad tas tiek faktiski ielādēts.
lietošanas konteksts `, kad ielādēts ()`
- daiļrunīgi modeļi un attiecības: `Kad ielādēts ()` pārbauda, vai attiecības ar daiļrunīgu modeli ir ielādētas, izmantojot tādas metodes kā `ar ()` vai `sload ()`. Ja attiecības ir ielādētas, tā atgriež saistītos datus; Pretējā gadījumā tas neatgriež neko vai noklusējuma vērtību. Šī uzvedība ir cieši saistīta ar daiļrunības iekšējo metodi `Relation Loaded ()`, kas nosaka, vai attiecību dati ir pieejami modeļa instancē [1] [7] [8].
- API resursi: to parasti izmanto Laravel API resursu klasēs, lai nosacīti ietvertu saistītos resursus vai kolekcijas, pamatojoties uz to, vai attiecības ir dedzīgas, uzlabojot veiktspēju un izvairoties no N+1 vaicājuma problēmas [1] [8].
var `Kad ielādēts ()` var izmantot ar trešo personu bibliotēkām?
- Nav tieša atbalsta ārpus daiļrunīgiem modeļiem: tā kā "kad ir ielādēts ()" paļaujas uz daiļrunīgā modeļa iekšējo stāvokli, lai pārbaudītu, vai attiecības ir ielādētas ("Relationoaded ()" metode), tā pēc būtības ir paredzēta daiļrunīgiem modeļiem un to attiecībām. Trešo pušu bibliotēkas, kas nepagarina vai imitē daiļrunīgus modeļus, un to attiecību iekraušanas mehānismi nevar tieši izmantot `, kad ielādēti ()`.
-Risinājumi: ja trešās puses bibliotēka atgriež objektus vai kolekcijas, kas nav daiļrunīgi modeļi, jūs nevarat izmantot `, kad ielādējat ()` kā ir. Jums būtu jāievieš līdzīga nosacīta loģika manuāli vai jāaptver šie objekti pielāgotā resursā, kas atdarina uzvedību. Alternatīvi, jūs manuāli varētu pārbaudīt, vai saistītie dati ir sastopami pirms to iekļaušanas atbildē.
kopsavilkums
- `Kad ielādēts ()` tiek veidots, lai darbotos tikai ar daiļrunīgiem modeļiem un to piekrautajām attiecībām.
- Tas ir atkarīgs no daiļrunības iekšējo attiecību iekraušanas stāvokļa, tāpēc to nevar tieši izmantot ar trešo personu bibliotēkām, kuras neizmanto daiļrunīgus modeļus.
- Lai nosacīti iekļautu saistītos datus no trešo personu avotiem, jums jāievieš savi nosacīti pārbaudes vai resursu aptinumi.
Tas padara "kad ielādētu ()" jaudīgu rīku, lai optimizētu Laravel API atbildes, bet aprobežojas ar daiļrunīgu ORM kontekstu [1] [7] [8].
Atsauces:
[1] https://henestrosa.dev/blog/how-to-use-whenoad-in-laravel-api-resources
[2] https://laracasts.com/discuss/channels/laravel/api-resource-using-count-with-whenoaded
[3] https://laravel.com/docs/12.x/eloquent-resources
[4] https://stackoverflow.com/questions/76828050/how-to-get-a-sing
[5] https://www.youtube.com/watch?v=ls7m14ecasu
[6.]
[7] https://laraveldaily.com/post/laravel-api-resources-reelations-when-metods
[8] https://laravel-news.com/whenoaded