akutaktau / csv-importer
CakePHP 的 CsvImporter 插件
0.5
2023-06-21 08:42 UTC
Requires
- php: >=7.2
- cakephp/cakephp: 4.4.*
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.3
This package is auto-updated.
Last update: 2024-08-24 14:12:03 UTC
README
尚不支持单元测试。仍在开发中
先决条件
- 必须创建与该插件一起使用的模型
- 模型应遵循 Cakephp -> 表命名约定
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require akutaktau/csv-importer
加载插件
bin/cake plugin load CsvImporter
转到 http://yourdomain/csv-importer/imports
## 使用自己的 UI 在控制器中添加
use CsvImporter\Controller\Component\ImportCsvComponent;
然后加载组件
$this->loadComponent('CsvImporter.ImportCsv');
以获取表列表
$this->ImportCsv->getTables();
以获取表列列表
$this->ImportCsv->getFields($table);
上传并保存 CSV 到数据库
$this->ImportCsv->saveFile($data['field'],$data['tables'],$files['inputNameFromForm'],$delimiter);
$data['field'] 是一个数组,其索引为表中的 fieldName,值为 CSV 中的列号。
$data['field'] = ['fieldName1' => 'columnNumber2','fieldName2' => 'columnNumber4']
$data['tables'] 应包含表名。
$data['tables'] = 'tableName';
$files['inputNameFromForm'] 应包含从 $this->getRequest()->getUploadedFiles() 获取的对象
$files = $this->getRequest()->getUploadedFiles();
$delimiter 包含 CSV 分隔符值
$delimiter = ',';