更新检查表行

时间:2019-04-01 13:38:38

标签: laravel

我需要一次更新选中的表行

我尝试使用下面的代码更新特定列,但仅在我要删除选中的行时才有效

<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');
    }

我希望能够一次更新选中的行。

3 个答案:

答案 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');
}