Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Voidaanko ladata


Voidaanko ladata


Kyllä, "kuormitusta" voidaan käyttää sisäkkäisten suhteiden kanssa Laravelissa, mutta on joitain vivahteita olla tietoisia.

Mikä on "latausmissing"?

Laravel Eloquent -tapahtumassa olevaa "Latausmissing" -menetelmää käytetään innokkaisiin kuormitussuhteisiin vain, jos niitä ei ole jo ladattu malli -ilmentymään. Tämä auttaa välttämään tarpeettomia kyselyjä tarkistamalla, onko suhdetiedot jo läsnä ennen tietokannan kyselyä uudelleen [6].

käyttämällä `latausmissing` -sisäisissä suhteissa

- Voit määrittää sisäkkäiset suhteet DOT -merkinnässä "kuormituksen" kanssa, kuten "" kirjoittaja.contacts ", sisäkkäisen suhteen lataaminen vain, jos se puuttuu [7].
- On kuitenkin tiedossa olevaa käyttäytymistä, jossa jos "ladataan" jo ladattujen suhteen sisäkkäisen suhteen, Laravel voi ladata itse vanhemman suhteen. Esimerkiksi, jos olet jo ladannut "kirjoitukset" malliin, niin kutsuminen `latausministeriöksi ('kirjoitukset.nestRelation')" aiheuttaa "kirjoitusten" yhteyden uudelleen latautumiseen [1].
- Tämä tarkoittaa, että vaikka "latausministeri" tukee sisäkkäisiä suhteita, se voi laukaista väliaikaisten suhteiden uudelleenlataamisen, jos ne aikaisemmin ladataan, mutta ilman sisäkkäistä suhdetta.

käytännön näkökohdat

- `latausmissing` on hyödyllinen, kun haluat ehdollisesti innokkaita kuormitussuhteita, estäen kaksoiskappaleet, jos suhde on jo ladattu.
- Sisäkkäisten suhteiden osalta sinun tulee olla tietoinen siitä, että aiemmin ladatusta vanhemman suhteesta puuttuvan sisäkkäisen suhteen lataaminen voi aiheuttaa vanhemman suhteen uudelleenlataan, mikä voi vaikuttaa suorituskykyyn.
- Jos haluat välttää tällaisia ​​uudelleenlatauksia, saatat joutua hallitsemaan huolellisesti, milloin ja miten lataat sisäkkäiset suhteet tai harkita innokkaasti lataamalla niitä etukäteen `kanssa ()`.

Yhteenveto

- Kyllä, "latausmissing" voidaan käyttää sisäkkäisten suhteiden kanssa pisteiden merkinnällä.
- Se lataa vain sisäkkäiset suhteet, jos ne puuttuvat.
- Mutta jos vanhempien suhde ladataan ilman sisäkkäistä suhdetta, "kuormitus" voi ladata vanhemman suhteen uudelleen sisäkkäisten tietojen hakemiseen [1] [6] [7].

Tämä käyttäytyminen on tärkeää pitää mielessä välttää odottamattomia useita kyselyjä työskennellessään sisäkkäisen innokkaan kuormituksen kanssa Laravelissa.

Viittaukset:
[1] https://github.com/laravel/framework/issues/23027
.
.
[4] https://github.com/fifemon/graphql-datasource/issues/15
.
.
.
[8] https://docs.sqlalchemy.org/14/orm/loading_relationships.html
[9] https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries