laravel - 更新数据库表中的多行
问题描述
我想更新多行。这是我的控制器文件:
$ids = [$request->get('com_id')];
$name = [$request->get('com_name')];
$stat = [$request->get('com_status')];
$now = Carbon::now();
$count = count($ids);
$thiss=$request->validate(
['com_name' => 'required',
'com_status' => 'required'
]);
// $i=0;
for ($i=0; $i <$count ; $i++) {
$companies = companies::find($ids[$i][0]);
companies::where('id',$ids[$i][0])
->update(['company_name' => $name[$i][0],
'status' => $stat[$i][0]
]);
但在我的代码中,只有第一行正在更新。如何使用数组索引号更新多行?
解决方案
您正在尝试id
从二维数组访问 ,并且正在初始化$ids
变量,例如$ids = [$request->get('com_id')];
. 请首先检查您是否拥有$ids
数组中的所有 id。如果没问题,那么以下任何代码都应该可以工作,
// #1
companies::where('id', $ids[$i][0])
->update([
'company_name' => $name[$i][0],
'status' => $stat[$i][0]
]);
// #2
$company = companies::find($ids[$i][0]);
$company->company_name = $name[$i][0];
$company->status = $stat[$i][0];
$company->save();
您应该按照文档进行更新,请查看https://laravel.com/docs/5.6/eloquent#updates,您可能会找到更多详细信息。
推荐阅读
- node.js - 在 cookie 过期后保持 Firebase 会话的正确方法是什么?
- python - Django error_messages{} 的解释?
- python - 如何从 RPi Camera 保存 RGB 数据,然后将文件保存为 matlab/Python 可读格式?
- python - 网站抓取错误 - 抓取 0 页(以 0 页/分钟),抓取 0 个项目
- visual-studio - Visual Studio .vstemplate 文件不使用 $projectname$ 参数复制文件
- python - Python Discord bot 停止进程
- apache-spark - Hbase 过滤特定行
- python - 我可以使用 python 循环遍历多个 excel 文件并将单个工作表添加到主工作簿吗?
- bash - 如果一列中的值包含连续数字并且所有其他列匹配,如何合并行
- java - Android XML-Java 更改首选项的背景颜色