我更新2个数据,第一个数据在普通表中,第二个数据使用EAV,因此我必须在哪里使用具有输入ID的数据进行更新
我在做什么错..im收到此错误..
这是我的控制器
这是普通桌子
$vendor = Vendor::find($request->id);
$vendor->is_active = '0';
$vendor->name = $request->name;
$vendor->address = $request->address;
$vendor->save();
这是EAV表
$values = [
'detail' => $request->detail,
'join_at' => Carbon::now(),
];
VendorDetail::whereIn('vendor_id', $request->id)->update($values);
答案 0 :(得分:0)
在第二个参数中使用whereIn()
时,您必须传递数组
VendorDetail::whereIn('vendor_id', [$request->id])->update($values);
但是您可以使用
VendorDetail::where('vendor_id',$request->id)->update($values);
答案 1 :(得分:0)
我在使用 Eloquent 时在选择查询中遇到了同样的错误。所以也发布我的解决方案。正如其他答案中已经提到的,
<块引用>当在第二个参数中使用 whereIn() 时,你必须数组
我的错误是我使用“=”作为第二个参数,使用实际数组作为第三个参数。删除如下等号参数解决了我的问题。
$innerQuery->whereIn('wo.wm_is_completed', $completedFlagArr);