我真的在努力使用这种更新方法,我们将不胜感激任何帮助。
我将向居民发送多个车牌,我可以成功存储和检索它,现在我想对其进行更新。
当我返回$request->cars
或dd时,它会给我这个数组。
array:2 [
0 => array:5 [
"id" => 10
"user_id" => 33
"car_number_plate" => "12f3456"
"created_at" => null
"updated_at" => null
]
1 => array:5 [
"id" => 11
"user_id" => 33
"car_number_plate" => "abc -123"
"created_at" => null
"updated_at" => null
]
]
在这里我找到了相关的ID,需要更新
$userId = ResidentCar::where('user_id', $resident->id)->pluck('id')
->toArray();
它返回这个数组。
array:2 [
0 => 10
1 => 11
]
在这里,我遍历数组并尝试对其进行更新。
$input = $request-cars;
foreach ($input as $row)
{
$cars[] = [
'user_id' => $resident->id,
'car_number_plate' => $row['car_number_plate'],
];
}
ResidentCar::whereIn('id', $userId)->update(array($cars));
该错误为Array to string conversion.
以及是否可以
ResidentCar::whereIn('id', $userId)->update($cars);
出现此错误。
Column not found: 1054 Unknown column '0' in 'field list' (SQL: update `resident_cars` set `0` = 33,
在座的任何人都可以帮助解决问题,或者采用其他更好的方法来解决这个问题。
答案 0 :(得分:0)
就像我在评论中说的那样,您需要每行进行一次更新。
如果要更新的行是$resident->id
,而要更新的数据是$row['car_number_plate']
,则需要执行以下操作:
$input = $request-cars;
foreach ($input as $row) {
$data = [
'car_number_plate' => $row['car_number_plate'],
];
ResidentCar::where('id',$resident->id)->update($data);
}
让我知道是否可行