Laravel: работа с красноречивыми отношениями

Laravel значительно упрощает взаимодействие с базой данных с помощью Eloquent. При работе с красноречивыми отношениями при вызове динамических переменных (с помощью магических методов PHP) вы должны знать, что экземпляры моделей не отражают новые изменения, а постоянно сохраняются при первом вызове.


В следующем примере он ведет себя так, как ожидалось:

6d32588c32f080ef1896633f261e1e14

$ model-> col всегда возвращает старое значение даже после изменения (поскольку значение изначально было получено один раз с помощью Model :: find (42), а затем сохранено). Если вы теперь обратитесь к другой подключенной таблице с помощью $ model-> independent_table , вы можете ожидать, что ее второй вызов вернет новое значение:

6d32588c32f080ef1896633f261e1e14

Это тоже не так ( $ зависимая_таблица = $ модель-> зависимая_таблица кэширует всю зависимую таблицу). Чтобы получить текущее значение, вызывается явно определенная функция Deendant_table ().:

6d32588c32f080ef1896633f261e1e14

Назад