使用Laravel的查询构造器查询数据,先建立了一个公共的条件构造器,然后遍历channels这个对象,每次循环时$model都会把上一次的条件叠加,也就是pay_channel,我不想让每次循环都把上次的条件叠加,我每次循环时都给$model重新赋值为初始构造器,为什么还会叠加查询条件,求解或者有没有好的解决方案,谢谢!
$channelDb = \DB::table('order')->where('app_id', $appid);
foreach ($channels as $vo) {
$model = $channelDb;
$data = $model->where('pay_channel', $vo->id)->get()->toArray();
unset($model);
}
对象是引用的, 不管你赋值几次, 修改的都是一个对象.
你应该把$vo->id收集到一个数据里, 然后用 whereIn 条件.
Laravel有个函数 array_plurk($channels, 'id') 大概这样.