Laravel: Praca z elokwentnymi relacjami

Laravel znacznie ułatwia komunikację z bazą danych dzięki Eloquent. Pracując z Eloquent Relationships, wywołując zmienne dynamiczne (przy użyciu magicznych metod PHP), powinieneś mieć świadomość, że instancje modeli nie odzwierciedlają nowych zmian, ale raczej przechowują je trwale w pamięci podręcznej przy pierwszym wywołaniu.


W poniższym przykładzie zachowuje się zgodnie z oczekiwaniami:

6d32588c32f080ef1896633f261e1e14

$ model-> col zawsze zwraca starą wartość nawet po zmianie (ponieważ wartość została początkowo pobrana raz za pomocą Model :: find (42), a następnie zapisana). Jeśli teraz adresujesz inną, połączoną tabelę za pomocą $ model-> depend_table , możesz oczekiwać, że jej drugie wywołanie zwróci nową wartość:

6d32588c32f080ef1896633f261e1e14

Tak też nie jest ( $ dependant_table = $ model-> dependant_table buforuje całą zależną tabelę). Aby uzyskać bieżącą wartość, wywoływana jest jawnie zdefiniowana funkcja dependant_table ():

6d32588c32f080ef1896633f261e1e14

Plecy