solaro
V2EX  ›  问与答

PHP 更新数据库问题( laravel)

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