V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linpf
V2EX  ›  PHP

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

  •  
  •   linpf · 2017-07-12 14:22:11 +08:00 · 2363 次点击
    这是一个创建于 2478 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 $M->money = ['exp','money+100'];
    这样在执行 save 方法的时候,会传递:update *** set money = money + 100 where ***
    7 条回复    2017-07-12 23:34:39 +08:00
    sun522198558
        1
    sun522198558  
       2017-07-12 14:40:37 +08:00
    linpf
        2
    linpf  
    OP
       2017-07-12 14:43:00 +08:00
    @sun522198558 这个并不是 Eloquent ORM 的操作方法。而且,increment 这种操作只能一个 sql 修改一个字段,现在的情况是我需要 1 条 sql 修改多个字段。
    wu1990
        3
    wu1990  
       2017-07-12 14:43:52 +08:00
    太多了,increment,decremen,Raw 都可以~
    linpf
        4
    linpf  
    OP
       2017-07-12 14:52:07 +08:00
    @wu1990 increment,decrement 只能满足只修改一条字段的需求,而且这个不属于 Eloquent ORM 的操作方法。raw 的话,我看了一些文档,似乎要手写完整的 sql 语句
    sun522198558
        5
    sun522198558  
       2017-07-12 15:07:26 +08:00   ❤️ 1
    $user = User::find(1);
    $user->update([
    'votes' => \DB::raw( 'votes + 1' ),
    'click' => \DB::raw( 'click + 1' ),
    ]);
    linpf
        6
    linpf  
    OP
       2017-07-12 15:19:04 +08:00
    @sun522198558 非常感谢!!!
    mingyun
        7
    mingyun  
       2017-07-12 23:34:39 +08:00
    5 楼 学习了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3554 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:45 · PVG 18:45 · LAX 03:45 · JFK 06:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.