Laravel:处理雄辩的关系

Laravel使用Eloquent使与数据库的通信变得更加容易。 在使用Eloquent Relationships时,在调用动态变量时(借助于PHP的魔术方法),您应该意识到,模型实例不会反映新的更改,而是在您首次调用它们时被永久保存。


在下面的示例中,它的行为符合预期:

6d32588c32f080ef1896633f261e1e14

$ model-> col即使更改后也总是返回旧值(因为该值最初是通过Model :: find(42)获取一次,然后保存)。 如果现在使用$ model-> dependent_table寻址另一个已连接的表,则可以期望它的第二次调用将返回新值:

6d32588c32f080ef1896633f261e1e14

也不是这种情况( $ dependent_table = $ model-> Dependant_table缓存整个从属表)。 要获取当前值,将调用显式定义的函数dependant_table():

6d32588c32f080ef1896633f261e1e14

背部