PHP 更新数据库问题( laravel)

2017-09-28 10:08:16 +08:00
 solaro

数据库字段名: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]);

1601 次点击
所在节点    问与答
10 条回复
barbery
2017-09-28 10:16:54 +08:00
...............你 var_dump 一下[$referralApply->link_logs]和$log_ids 再说吧
solaro
2017-09-28 10:27:24 +08:00
@barbery 啊哈哈,貌似这样不行
815lbh
2017-09-28 10:28:50 +08:00
[$referralApply->link_logs] 出来的是 string.
mkeith
2017-09-28 10:29:30 +08:00
你要 split 一下吧
invoke
2017-09-28 10:38:48 +08:00
...你直接
['1,2,3,4,5']
和[1,2,3,4,5]难道结果是一样的吗。。
[$referralApply->link_logs] 明显是前者啊。
yangqi
2017-09-28 10:44:59 +08:00
你这数据库设计的太烂了,打回去重写
inorobot
2017-09-28 11:13:50 +08:00
[...$referralApply->link_logs]
PHP 交 JS ?
phpcxy
2017-09-28 11:17:06 +08:00
基本功不扎实啊老哥
solaro
2017-10-01 11:07:18 +08:00
@yangqi 求指导
solaro
2017-10-01 11:07:38 +08:00
@invoke 啊哈哈,坑了自己一把

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

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

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

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

© 2021 V2EX