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()

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

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

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

理解不了,描述不够清楚

4年前 评论

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

4年前 评论
leo

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

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

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

4年前 评论

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

4年前 评论

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

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

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!