数据库字段名: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]);
1
barbery 2017-09-28 10:16:54 +08:00 1
...............你 var_dump 一下[$referralApply->link_logs]和$log_ids 再说吧
|
3
815lbh 2017-09-28 10:28:50 +08:00
[$referralApply->link_logs] 出来的是 string.
|
4
mkeith 2017-09-28 10:29:30 +08:00 via iPhone
你要 split 一下吧
|
5
invoke 2017-09-28 10:38:48 +08:00
...你直接
['1,2,3,4,5'] 和[1,2,3,4,5]难道结果是一样的吗。。 [$referralApply->link_logs] 明显是前者啊。 |
6
yangqi 2017-09-28 10:44:59 +08:00
你这数据库设计的太烂了,打回去重写
|
7
inorobot 2017-09-28 11:13:50 +08:00
[...$referralApply->link_logs]
PHP 交 JS ? |
8
phpcxy 2017-09-28 11:17:06 +08:00
基本功不扎实啊老哥
|