传递给 Illuminate\\Database\\Query\\Builder::cleanBindings() 的参数 1 必须是数组类型,给定的字符串

mis*_*sry 4 laravel eloquent laravel-5

我更新了2个数据,第一个数据在普通表中,第二个数据使用EAV,因此我必须使用where来更新具有输入ID的数据

我做错了什么..我收到这个错误..

这是我的控制器

这是普通表

$vendor = Vendor::find($request->id);
$vendor->is_active = '0';
$vendor->name = $request->name;
$vendor->address = $request->address;
$vendor->save();
Run Code Online (Sandbox Code Playgroud)

这是 EAV 表

$values = [
    'detail'  => $request->detail,
    'join_at' => Carbon::now(),
];
VendorDetail::whereIn('vendor_id', $request->id)->update($values);
Run Code Online (Sandbox Code Playgroud)

Dav*_*vit 13

whereIn()在第二个参数中使用时,您必须传递数组

VendorDetail::whereIn('vendor_id', [$request->id])->update($values);
Run Code Online (Sandbox Code Playgroud)

但在你的情况下,你可以使用

VendorDetail::where('vendor_id',$request->id)->update($values);
Run Code Online (Sandbox Code Playgroud)