我有一个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/