从foreach循环更新MySQL表时出错

时间:2017-08-16 14:48:45

标签: mysql sql laravel-5

我从数据库中获取行。每行有2个单选按钮。我在表中更新这些值时遇到问题。我收到此错误 -

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

@foreach($items as $item)                 
    <td>{{ $item->item_title }}</td>
    <td>{{ $item->description }}</td>
    <td>{{ $item->price }}</td>
    <td>{{ $item->quantity }}</td>
    <td>{{ $item->total }}</td>
    <td>
        <div class='btn-group'>
                <form action="{{url('lineManagerUpdateRequests')}}" method="post">

                <input type="radio" name="item_id[{{$item->request_id}}][]" value="2"> Approve
                <input type="radio" name="item_id[{{$item->request_id}}][]" value="6"> Decline
            </div>
        </td>    
    @endforeach
    <input type="submit" name="submit" class="btn btn-sm btn-danger">
</form>

这是我的控制器

foreach ($request->input('item_id') as $id => $value) {
            $update = DB::table('request_items')
                        ->where('id', $id)
                        ->update('line_manager_remark', $value);
}

1 个答案:

答案 0 :(得分:0)

而不是:

->update('line_manager_remark', $value);

->update(array('line_manager_remark' => $value));

->update(['line_manager_remark' => $value]);

因为update()的参数必须是类型数组。

Reference