Laravel: Praca z elokwentnymi relacjami

Laravel znacznie ułatwia komunikację z bazą danych dzięki Eloquent. Podczas pracy z relacjami elokwentnymi , podczas wywoływania zmiennych dynamicznych (za pomocą magicznych metod PHP), należy mieć świadomość, że instancje modeli nie odzwierciedlają nowych zmian, ale są trwale zapisywane przy ich 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