首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel虚拟列无法保存

Laravel虚拟列无法保存
EN

Stack Overflow用户
提问于 2018-07-18 04:10:02
回答 0查看 1K关注 0票数 3

我使用Laravels的virtualAs列修饰符在数据库表中添加了几个虚拟列:

代码语言:javascript
运行
复制
 $table->decimal('grand_total')->virtualAs( '(total_value + (total_value*tax_rate))');

基本上,它保留了一个mysql虚拟列,该列根据存储在另一列中的总额和税率自动计算总计。

然而,Laravel似乎一点也不喜欢虚拟列。在保存记录时,它试图对虚拟列执行INSERTUPDATE操作,这在mySQL中显然是不允许的。我找不到在Eloquent模型中配置哪些字段在更新或插入时实际写入数据库的方法。

我尝试将该字段添加到模型$hidden$appends中,但似乎都不起作用。

查看用于插入的Laravel源代码(https://github.com/laravel/framework/blob/5.6/src/Illuminate/Database/Eloquent/Model.php#L733),它似乎只插入$this->attributes中的任何属性。当从数据库读取记录时,将从表中读取grand_total字段并将其设置为属性,然后在保存记录后再次尝试写入该字段。

有没有办法让这个Laravel停止尝试保存虚拟列?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51389454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档