我有一个foreach循环来获取数据库中存储的值并显示它们中的每一个,它工作正常,但是现在我想批量更新它的值,这是我的代码来生成复选框。

@foreach ($servers as $server)

    <input type="checkbox" name="servidor[]" value="status_on" {{$server->status == 1 ? 'checked' : ''}}>

@endforeach


这是我的代码,用于更新数据库上的值。

foreach (request('servidor') as $update) {

    DB::table('servers')
    ->where('id', $update)
    ->update(['status' => $update->servidor]);

}


它不起作用,我不断得到:


  试图获取非对象的属性


在此行上:->update(['status' => $update->servidor]);

如何批量更新这些动态生成的复选框?

最佳答案

如果要获取server_id => value数组,则应将输入复选框更改为

<input type="checkbox" name="servidor[{{$server->id}}]" value="{{$server->status}}" {{$server->status == 1 ? 'checked' : ''}}><span></span>


因此,您可以使服务器id-> value数组,然后使用foreach($ value as $ key => $ value),您的问题将得到解决。

关于php - 如何使用foreach批量更新记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44491077/

10-14 15:25
查看更多