Eloquent 如何实现类似 thinkphp 中 model 的 exp 操作

2017-07-12 14:22:11 +08:00
 linpf
比如 $M->money = ['exp','money+100'];
这样在执行 save 方法的时候,会传递:update *** set money = money + 100 where ***
2397 次点击
所在节点    PHP
7 条回复
sun522198558
2017-07-12 14:40:37 +08:00
linpf
2017-07-12 14:43:00 +08:00
@sun522198558 这个并不是 Eloquent ORM 的操作方法。而且,increment 这种操作只能一个 sql 修改一个字段,现在的情况是我需要 1 条 sql 修改多个字段。
wu1990
2017-07-12 14:43:52 +08:00
太多了,increment,decremen,Raw 都可以~
linpf
2017-07-12 14:52:07 +08:00
@wu1990 increment,decrement 只能满足只修改一条字段的需求,而且这个不属于 Eloquent ORM 的操作方法。raw 的话,我看了一些文档,似乎要手写完整的 sql 语句
sun522198558
2017-07-12 15:07:26 +08:00
$user = User::find(1);
$user->update([
'votes' => \DB::raw( 'votes + 1' ),
'click' => \DB::raw( 'click + 1' ),
]);
linpf
2017-07-12 15:19:04 +08:00
@sun522198558 非常感谢!!!
mingyun
2017-07-12 23:34:39 +08:00
5 楼 学习了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX