Laravel: Werken met welsprekende relaties

Laravel maakt de communicatie met de database veel eenvoudiger met Eloquent. Wanneer u met Eloquent Relationships werkt en dynamische variabelen aanroept (met behulp van de magische methoden van PHP), moet u zich ervan bewust zijn dat de instances van de modellen geen nieuwe wijzigingen weerspiegelen, maar deze permanent in de cache opslaan zodra ze voor de eerste keer 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