Laravel 5.5 模型的问题,请大家看一下详情,帮我解答一下,非常感谢大家!

$new_com_sta_line_det = $new_company_status->com_sta_line_det;
中间将 com_sta_line_det 进行了修改,后面想拿到修改后的 com_sta_line_det
又进行了一次:
$new_com_sta_line_det = $new_company_status->com_sta_line_det;

但是第二次的结果依然和第一次一样,拿不到修改后的数据,这是 Laravel 的规则吗?
如果想拿到修改后的数据,应该怎么拿呢?
请大家指点一下!非常感谢!


大家提供的方法 refresh () 和 fresh () 都不行,不知道具体是什么原因,可能是版本的原因,我的版本是 5.5,也可能不是版本的原因。。。
我用的这个方式得到的新值:$new_company_status->com_sta_line_det ()->get ()

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

$new_com_sta_line_det = $new_company_status->com_sta_line_det->refresh();

5年前 评论
Tricker 5年前
leo (作者) 5年前
Tricker 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前
讨论数量: 7
Summer

理解不了,描述不够清楚

5年前 评论

同一个模型修改了属性,然后获取属性还是旧的属性值是吗?看看是不是设置了修改器,如果是设置了修改器,在修改器里面做一下兼容!

5年前 评论
leo

$new_com_sta_line_det = $new_company_status->com_sta_line_det->refresh();

5年前 评论
Tricker 5年前
leo (作者) 5年前
Tricker 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前
HEPING (楼主) 5年前

是不是修改了数据,但是没有保存;

5年前 评论

如果是动态属性是指 getComStaLineDetAttribute 的话,那你不应该直接修改 com_sta_line_det,而应该修改这个方法里面操作的原始值,因为模型有__get 魔术方法,里面不会去直接调用对象上的 com_sta_line_det 属性,而是会调用 attributes 里面的 com_sta_line_det,或者是 getComStaLineDetAttribute 方法,或者是 com_sta_line_det 关联

5年前 评论

修改后 refresh() 一波获取修改后的值,还可以通过 getOriginal() 获取修改之前的值

5年前 评论
HEPING (楼主) 5年前

需要重载下获取最新的数据

5年前 评论