php - 如何在 Laravel 上解决数据 Excel 到 MySQL 的更改值
问题描述
数据excel如下图
我想在将数据从 Excel 上传到 MySQL 时更改值
如果单元格的名称为“UNSIL”,则存储在数据库中时将更改为数字“1”
我有在 laravel 上将数据从 Excel 上传到 MySQL 的代码
public function importExcel(Request $request) {
if($request->hasFile('import_file')) {
$path = $request->file('import_file')->getRealPath();
$data = Excel::load($path, function($reader) {})->get();
if(!empty($data) && $data->count()) {
foreach($data as $key => $value) {
if($value->nama_universitas = 'UNSIL') {
$value->nama_universitas = '1';
} else if($value->nama_universitas = 'UNPAD') {
$value->nama_universitas = '2';
}
$insert[] = ['nama_fakultas'=>$value->nama_fakultas,
'nama_universitas'=>$value->nama_universitas,
'keterangan'=>$value->keterangan
];
}
if(!empty($insert)) {
DB::table('fakultas')->truncate($insert);
DB::table('fakultas')->insert($insert);
return redirect('fakultas');
}
}
}
return back();
}
上面的代码中包含从 excel 到 mysql 的数据上传命令,当我想将名称“UNSIL”的值更改为数字 1 时,它可以工作,但是当值名称“UNPAD”并更改为“2”时它不起作用。我使用如下代码逻辑
if($value->nama_universitas = 'UNSIL') {
$value->nama_universitas = '1';
} else if($value->nama_universitas = 'UNPAD') {
$value->nama_universitas = '2';
}
我错过了什么吗,为什么当存储在 MySQL 中时“UNPAD”的名称不能更改为“2”
解决方案
您的 if 语句应该评估比较,而不是设置值。
例如
if($value->nama_universitas = ‘UNPAD’)
变成
if($value->nama_universitas === ‘UNPAD’)
推荐阅读
- c++ - lambda 捕获中的隐式类型
- javascript - 在 Vue 模板槽中使用父槽变量
- omnet++ - 安装时 OMNeT++ 和 INET 示例中的参数未分配错误
- wordpress - 如何在 Wordpress 中为我的主题创建新的自定义字段
- vue.js - Vue – 将变量从子模板传递给 App.vue
- html - 一个 html 行中多个详细信息标签的边框无法响应
- c# - WPF按钮未在悬停时应用所有属性
- arrays - 如何编写一个函数,该函数采用一行文本,并将每个单词保存在指向 char 指针的指针中并返回该指针
- objective-c - 如何将 UISwitch 添加到特定的 UIScrollView?
- javascript - 如何使用javascript将名称增加的字段添加到表单中?