情景描述
fastadmin有自带的导入功能,但是不好用,它要求你的表格标题必须跟数据表的备注一致,而且拿到的数据是直接插入数据表,我们无法获取想要的数据并对数据进行处理;而且有时候我们只是想要单纯的读取文件功能,系统自带的无法满足,所以需要对导入功能重写。
重写导入功能
1.打开导入按钮
在你的模板文件中,在工具栏添加import
功能即可,如果要自定义导入按钮,可以参考我的另一篇文章fastadmin后台自定义按钮和弹窗-优快云博客
{:build_toolbar('refresh,add,edit,del,import')}
2.js文件添加导入接口链接
在后台对应功能的js文件初始化表格参数配置
中添加链接即可
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'user/group/index',
add_url: 'user/group/add',
edit_url: 'user/group/edit',
del_url: 'user/group/del',
multi_url: 'user/group/multi',
import_url: 'user/group/import', //导入接口链接
table: 'user_group',
}
});
3.重写import方法
-
(1)先在
application/admin/library/traits/Backend.php
文件中添加读取文件数据方法/** * 读取文件数据并返回 * @return array */ protected function readFile($file){ if (!$file) { $this->error(__('Parameter %s can not be empty', 'file')); } $filePath = ROOT_PATH . DS . 'public' . DS . $file; if (!is_file($filePath)) { $this->error(__('No results were found')); } //实例化reader $ext = pathinfo