我想更新多行。这是我的控制器文件:
$ids = [$request->get('com_id')];
$name = [$request->get('com_name')];
$stat = [$request->get('com_status')];
$now = Carbon::now();
$count = count($ids);
$thiss=$request->validate(
['com_name' => 'required',
'com_status' => 'required'
]);
// $i=0;
for ($i=0; $i <$count ; $i++) {
$companies = companies::find($ids[$i][0]);
companies::where('id',$ids[$i][0])
->update(['company_name' => $name[$i][0],
'status' => $stat[$i][0]
]);
但是在我的代码中,仅第一行正在更新。如何用数组索引号更新多行?
答案 0 :(得分:0)
您正尝试从二维数组访问id
,并且正在初始化$ids
变量,如$ids = [$request->get('com_id')];
。请首先检查您是否拥有$ids
数组中的所有ID。如果还可以,那么以下任何代码都可以工作,
// #1
companies::where('id', $ids[$i][0])
->update([
'company_name' => $name[$i][0],
'status' => $stat[$i][0]
]);
// #2
$company = companies::find($ids[$i][0]);
$company->company_name = $name[$i][0];
$company->status = $stat[$i][0];
$company->save();
您应该按照文档进行更新,请查看https://laravel.com/docs/5.6/eloquent#updates,您可能会发现更多详细信息。