laravel - 如何使用 laravelcollective 在 Laravel 中上传 excel 文件?
问题描述
使用 package fast excel 导入数据 xlsx 时出现问题。我想输入 excel 文件包括来自不同模型的 ID,如下所示
应用程序/http/clustercontroller:
public function Import($id)
{
$model = Cluster::findOrFail($id);
return view('components.Admin.import', compact('model'));
}
public function StoreImport($id, Request $request)
{
//VALIDASI
$this->validate($request, [
'file' => 'required|mimes:xls,xlsx',
]);
if ($request->hasFile('file')) {
$file = $request->file('file'); //Get File
$collection = (new FastExcel)->import($file, function ($line) use ($id) {
return Soal::create([
'soal' => $line['Soal'],
'image' => $line['Image'],
'A' => $line['A'],
'B' => $line['B'],
'C' => $line['C'],
'D' => $line['D'],
'E' => $line['E'],
'kunci' => $line['Kunci'],
'cluster_id' => $id
]); //Import File
});
}
}
资源/管理员/import.blade.php:
{!! Form::model($model, [
'route' => $model->exists ? ['cluster.soal.store', $model->id] : 'cluster.soal.create',
'method' => $model->exists ? 'POST' : 'POST',
'files' => true
]) !!}
<div class="form-group">
<label for="" class="control-label">Cluster</label>
{!! Form::text('cluster', null, ['class' => 'form-control', 'id' => 'cluster']) !!}
</div>
<div class="form-group">
<label for="" class="control-label">File .xlsx</label>
{!! Form::file('files') !!}
</div>
{!! Form::close() !!}
上面的代码显示了表单,但是当我点击提交时没有响应
解决方案
您似乎没有在 Controller 方法中返回响应,所以这是我能想到的原因之一。我假设您的模型已存储?
你可以做的事情来改进:
- 完成导入后返回视图,或者更好的是重定向
- 用 try/catch 块包围你的代码
推荐阅读
- python - 将数字添加到多维数组python
- c++ - 可以使用memcpy cpp函数在系统内存和gpu内存之间复制数据吗?
- c# - 如何在资源中使用外部 Canvas xaml
- c# - C# OpenXml 接受 .docx 中的所有修订
- jquery - 每次使用 jQuery 进行新的 ajax 调用时,如何显示“加载微调器”?
- c# - Azure Functions Runtime v1 EventGrid 订阅创建失败
- c# - Visual Studio 错误 正在构建的项目的处理器架构 msil 与处理器架构不匹配
- java - 未提供身份验证详细信息 REST API POST 请求
- javascript - 是否有验证器来检查运算符是否已被使用?
- r - ggplot2:安排堆叠条如何使用融化呈现