solaro
V2EX  ›  问与答

PHP 更新数据库问题( laravel)

  •  
  •   solaro · Sep 28, 2017 · 2000 views
    This topic created in 3164 days ago, the information mentioned may be changed or developed.

    数据库字段名:link_logs varchar 类型,存的是 referral_log 的 id 串,每个 id 用,号隔开,实际数据是这样的: 1,2,3,4,5

    然后再 laravel 中更新的时候把这个直接取出来放到 whereIn 条件中 如果这样写:会导致只更新第一条就是 1 的 status,而我的目的是更新 12345 都要更新

    $referralApply = ReferralApply::where('id', $id)->first();

    ReferralLog::whereIn('id', [$referralApply->link_logs])->update(['status' => 1]);

    这样 explode 一遍就不会,这是为什么呢?

    $referralApply = ReferralApply::where('id', $id)->first();

    $log_ids = explode(',', $referralApply->link_logs);

    ReferralLog::whereIn('id', $log_ids)->update(['status' => 1]);

    10 replies    2017-10-01 11:07:38 +08:00
    barbery
        1
    barbery  
       Sep 28, 2017   ❤️ 1
    ...............你 var_dump 一下[$referralApply->link_logs]和$log_ids 再说吧
    solaro
        2
    solaro  
    OP
       Sep 28, 2017
    @barbery 啊哈哈,貌似这样不行
    815lbh
        3
    815lbh  
       Sep 28, 2017
    [$referralApply->link_logs] 出来的是 string.
    mkeith
        4
    mkeith  
       Sep 28, 2017 via iPhone
    你要 split 一下吧
    invoke
        5
    invoke  
       Sep 28, 2017
    ...你直接
    ['1,2,3,4,5']
    和[1,2,3,4,5]难道结果是一样的吗。。
    [$referralApply->link_logs] 明显是前者啊。
    yangqi
        6
    yangqi  
       Sep 28, 2017
    你这数据库设计的太烂了,打回去重写
    inorobot
        7
    inorobot  
       Sep 28, 2017
    [...$referralApply->link_logs]
    PHP 交 JS ?
    phpcxy
        8
    phpcxy  
       Sep 28, 2017
    基本功不扎实啊老哥
    solaro
        9
    solaro  
    OP
       Oct 1, 2017 via iPhone
    @yangqi 求指导
    solaro
        10
    solaro  
    OP
       Oct 1, 2017 via iPhone
    @invoke 啊哈哈,坑了自己一把
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   945 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
    ♥ Do have faith in what you're doing.