У меня есть файл Excel, который я импортирую в свою базу данных. В файле Excel есть значения, которые уже существуют в моей базе данных. Если я продолжу импортировать, как мне пропустить / передать те же значения, чтобы дублированные данные не импортировались в базу данных? Но данные, значение которых не является дубликатом, попадут в базу данных.
Это мой контроллер:
public function import(Request $request){
//validate the xls file
$this->validate($request, array(
'file' => 'required'
));
if($request->hasFile('file')){
$extension = File::extension($request->file->getClientOriginalName());
if ($extension == "xlsx" || $extension == "xls" || $extension == "csv") {
$path = $request->file->getRealPath();
$data = Excel::load($path, function($reader) {
})->get();
if(!empty($data) && $data->count()){
foreach ($data as $key => $value) {
$insert[] = [
'nama_perusahaan'=> $value->nama_perusahaan,
'name'=> $value->name,
'username'=> $value->username,
'email'=> $value->email,
'bagian'=> $value->bagian,
'pass'=> $value->password,
'password' => bcrypt($value['password']),
'kontak'=> $value->kontak,
'jenis_questioner'=> $value->jenis_questioner,
'pic_responden'=> $value->pic_responden,
'kode_proyek'=> $value->kode_proyek,
'nama_proyek'=> $value->nama_proyek,
'nama_pemesan'=> $value->nama_pemesan,
'no_po'=> $value->no_po,
'pic'=> $value->pic,
'nama_sales'=> $value->nama_sales,
'nama_pe'=> $value->nama_pe,
'alamat_pengiriman'=> $value->alamat_pengiriman,
'warna_cat'=> $value->warna_cat,
'tanggal_delivery'=> $value->tanggal_delivery,
'tanggal_tescom'=> $value->tanggal_tescom,
'tanggal_survey'=> $value->tanggal_survey,
'tanggal_upload'=> $value->tanggal_upload
];
}
if(!empty($insert)){
$insertData = DB::table('users')->insert($insert);
if ($insertData) {
Session::flash('success', 'Your Data has successfully imported');
}else {
Session::flash('error', 'Error inserting the data..');
return back();
}
}
}
return back();
}else {
Session::flash('error', 'File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!');
return back();
}
}
}