我需要一次更新选中的表行
我尝试使用下面的代码更新特定列,但仅在我要删除选中的行时才有效
<td><input type="checkbox" name="selected[]" value="{{ $user->id }}"/></td>
public function update(Request $request)
{
$checked = $request->input('selected',[]);
User::whereIn('id', $checked)->update(['status' => 1]);
return redirect('/home/users');
}
我希望能够一次更新选中的行。
答案 0 :(得分:0)
update
函数中语法错误,您应该使用:
User::whereIn('id', $checked)->update('status', 1);
或
User::whereIn('id', $checked)->update(['status' => 1]);
答案 1 :(得分:0)
如果您通过echo"<pre>";print_r($checked);die;
,您将看到$checked
是一个数组。因此,执行一个foreach
循环,您将获得每个id
作为字符串。然后更新它。还可以将其更新为->update()
中的数组。
答案 2 :(得分:0)
您可以尝试以下代码:
<td><input type="checkbox" name="selected[]" value="{{ $user->id }}"/>{{$user->name}}</td>
public function update(Request $request)
{
$input = $request->all();
foreach ($input['selected'] as $select) {
User::update(array('user_id' => $select->id), [
'status' => '1',
]);
}
return redirect('/home/users');
}