https://learnku.com/articles/55597
Dcat Admin
Dcat Admin 是一个基于 laravel-admin 二次开发而成的后台系统构建工具,只需极少的代码即可快速构建出一个功能完善的高颜值后台系统。支持页面一键生成 CURD 代码,内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的 HTML 代码,对后端开发者非常友好。
参考链接:blog.csdn.net/qq_42468039/article/...
本次实现的导入功能是 Dcat 的版本为”dcat/laravel-admin”: “2.0.9-beta”,
实现效果
1. 安装 maatwebsite/excel
composer require maatwebsite/excel
2. 在控制器中添加按钮
use App\Admin\Actions\Modal\memberModal;
$grid->tools(function (Grid\Tools $tools) {
//Excel导入
$tools->append(new memberModal());
});
3. 创建文件
app/admin/actions/Modal/memberModal.php
getKey()}";
// 模态窗
$this->modal($id);
return <<
HTML;
}
protected function modal($id)
{
$form = new memberForm();
Admin::script('Dcat.onPjaxComplete(function () {
$(".modal-backdrop").remove();
$("body").removeClass("modal-open");
}, true)');
// 通过 Admin::html 方法设置模态窗HTML
Admin::html(
<<
app/admin/actions/Form/memberForm.php
response()->success('数据导入成功')->refresh();
} catch (\Exception $e) {
return $this->response()->error($e->getMessage());
}
}
public function form()
{
$this->file('file', '上传数据(Excel)')->rules('required', ['required' => '文件不能为空'])->move('admin/upload/');
}
}
app/admin/actions/Imports/memberImport.php
first();
if ($user) {
return null;
}
return new Member([
'username' => $row[0],
'name' => $row[1],
]);
}
/**
* 从第几行开始处理数据 就是不处理标题
* @return int
*/
public function startRow(): int
{
return 2;
}
}
4.Model 允许写入
class Member extends Model
{
protected $fillable = ['name','username'];
}
5. 导入 Excel 样式