Php Laravel-Excel导入
我在这个网站上找到了代码 这是我编辑后的路线:Php Laravel-Excel导入,php,excel,laravel,Php,Excel,Laravel,我在这个网站上找到了代码 这是我编辑后的路线: Route::post('barang', 'BarangController@importExcel')->name('barang'); 这是他们的控制器,我刚刚添加了foreach: public function importExcel(Request $request) { $request->validate([ 'import_file' => 'required' ]);
Route::post('barang', 'BarangController@importExcel')->name('barang');
这是他们的控制器,我刚刚添加了foreach:
public function importExcel(Request $request)
{
$request->validate([
'import_file' => 'required'
]);
$path = $request->file('import_file')->getRealPath();
$data = Excel::load($path)->get();
if($data->count()){
foreach ($data as $key => $value) {
$arr[] = [
'kode_barang' => $value->kode_barang,
'nama_barang' => $value->nama_barang,
'kategori_id' => $value->kategori_id,
'jumlah_barang' => $value->jumlah_barang,
'harga_satuan' => $value->harga_satuan,
'tanggal_inputan' => $value->tanggal_inputan,
'deskripsi' => $value->deskripsi,
'status' => $value->status,
];
}
if(!empty($arr)){
Item::insert($arr);
}
}
return back()->with('success', 'Insert Record successfully.');
}
我只是在我的观点中添加了这一点:
<form action="{{ route('barang') }}" class="form-horizontal" method="post"
enctype="multipart/form-data">
@csrf
@if ($errors->any())
<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert"
aria-label="close">×</a>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if (Session::has('success'))
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert"
aria-label="close">×</a>
<p>{{ Session::get('success') }}</p>
</div>
@endif
<input type="file" name="import_file" />
<button class="btn btn-primary">Import File</button>
</form>
那么,如何使代码正确插入数据库?无需使用任何第三方库,您可以使用下面的函数从表中下载Excel文件
protected function downloadEXCEL(Request $request){
$table = User::orderBy('created_at','desc')->get();
$filename = "output.xls";
$handle = fopen($filename, 'w+');
fputcsv($handle,array('user_email','mobile','country','state','address','zip_code','city'));
foreach($table as $row) {
fputcsv($handle,array(
$row['user_email'],
$row['mobile'],
$row['country'],
$row['state'],
$row['address'],
$row['zip_code'],
$row['city']
));
}
fclose($handle);
$headers = array('Content-type'=> 'application/vnd.ms-excel');
return response()->download($filename,'output.xls',$headers);
}
首先,请更改您的代码如下:
if($data->count()){
foreach ($data as $key => $value) {
$arr[] = [
'kode_barang' => $value->kode_barang,
'nama_barang' => $value->nama_barang,
'kategori_id' => $value->kategori_id,
'jumlah_barang' => $value->jumlah_barang,
'harga_satuan' => $value->harga_satuan,
'tanggal_inputan' => $value->tanggal_inputan,
'deskripsi' => $value->deskripsi,
'status' => $value->status
];
}
if(!empty($arr)){
Item::insert($arr);
return back()->with('success', 'Insert Record successfully.');
}else{
return back()->with('error', 'Failed to insert record.');
}
}
然后试着调试代码,解释为什么不插入记录。请提供一些信息……欢迎使用stackoverflow。你必须解释你的问题。你可以阅读@Ruub,你可以从昨天的帖子上找到更多关于这个链接的信息stackoverflow@mshomali我已经给了一个明确的问题之前,但没有人回答我可能的副本,实际上我不需要下载。我只是需要导入代码成功插入
if($data->count()){
foreach ($data as $key => $value) {
$arr[] = [
'kode_barang' => $value->kode_barang,
'nama_barang' => $value->nama_barang,
'kategori_id' => $value->kategori_id,
'jumlah_barang' => $value->jumlah_barang,
'harga_satuan' => $value->harga_satuan,
'tanggal_inputan' => $value->tanggal_inputan,
'deskripsi' => $value->deskripsi,
'status' => $value->status
];
}
if(!empty($arr)){
Item::insert($arr);
return back()->with('success', 'Insert Record successfully.');
}else{
return back()->with('error', 'Failed to insert record.');
}
}