首页 > 解决方案 > 如何在 Laravel 上解决数据 Excel 到 MySQL 的更改值

问题描述

数据excel如下图

数据_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”

结果

标签: phpmysqllaravel

解决方案


您的 if 语句应该评估比较,而不是设置值。

例如

if($value->nama_universitas = ‘UNPAD’)

变成

if($value->nama_universitas === ‘UNPAD’)

推荐阅读