Laravel: Werken met welsprekende relaties

Laravel maakt de communicatie met de database een stuk eenvoudiger met Eloquent. Wanneer u met Welsprekende relaties werkt en dynamische variabelen aanroept (met behulp van de magische methoden van PHP), moet u zich ervan bewust zijn dat de instanties van de modellen geen nieuwe wijzigingen weerspiegelen, maar permanent worden opgeslagen wanneer ze voor het eerst worden aangeroepen.


In het volgende voorbeeld gedraagt ​​het zich zoals verwacht:

6d32588c32f080ef1896633f261e1e14

$ model-> col retourneert altijd de oude waarde, zelfs na de wijziging (omdat de waarde aanvankelijk eenmaal werd opgehaald met Model :: find (42) en vervolgens werd opgeslagen). Als je nu een andere, verbonden tabel aanspreekt met $ model-> afhankelijk_tabel , zou je kunnen verwachten dat de tweede aanroep de nieuwe waarde zou teruggeven:

6d32588c32f080ef1896633f261e1e14

Dit is ook niet het geval ( $ afhankelijk_table = $ model-> dependant_table caches de volledige afhankelijke tabel). Om een ​​huidige waarde te krijgen, wordt de expliciet gedefinieerde functie dependant_table () aangeroepen:

6d32588c32f080ef1896633f261e1e14

Terug