Laravel:雄弁な関係を扱う

Laravel を使用すると、Eloquent を使用してデータベースとの通信がはるかに簡単になります。 Eloquent Relationships を使用する場合、動的変数を呼び出すとき (PHP のマジック メソッドを使用)、モデルのインスタンスは新しい変更を反映せず、最初に呼び出されたときに永続的にキャッシュされることに注意する必要があります。


次の例では、期待どおりに動作します:

6d32588c32f080ef1896633f261e1e14

$ model-> colは、変更後も常に古い値を返します(値は、 Model :: find(42)で最初に一度フェッチされてから保存されたため)。 $ model-> dependent_tableを使用して別の接続されたテーブルをアドレス指定すると、2回目の呼び出しで新しい値が返されることが期待できます。:

6d32588c32f080ef1896633f261e1e14

これも当てはまりません( $ dependent_table = $ model-> dependent_tableは依存テーブル全体をキャッシュします)。 現在の値を取得するために、明示的に定義された関数dependant_table()が呼び出されます:

6d32588c32f080ef1896633f261e1e14

バック