imediasun / laravel-csv-import
用于Laravel-5的组件包
dev-master
2019-04-18 21:07 UTC
Requires
- php: >=5.4.0
- laravel/framework: 5.6.39
- league/csv: ^9.0
This package is auto-updated.
Last update: 2024-09-19 10:19:04 UTC
README
基于命令行和API的CSV导入工具,带管理员用户界面
此包允许您将CSV文件导入数据库。
安装
此包可在Laravel 5.6或更高版本中使用。您可以通过composer安装此包
composer require imediasun/laravel-csv-import
手动在您的config/app.php文件中添加服务提供者
'providers' => [
// ...
Imediasun\Widgets\WidgetServiceProvider::class,
];
您可以使用以下命令发布包
php artisan vendor:publish --provider="Imediasun\Widgets\WidgetServiceProvider"
同时,您还需要在Laravel中运行迁移
php artisan migrate
之后,您需要在config/widgets.php中设置组件配置变量
return [ // ... 'csv_import_recepient'=>'imediasun@gmail.com', 'csv_import_sender'=>['address'=>'imediasu1n@gmail.com','name'=>'Andrey'], ];
为了检查,请将其添加到您将要显示的任何模板中,例如,在resources/views/welcome.blade.php中的行
@widget('test')
在Laravel队列作业执行完毕后,您可以在storage/logs/csv_import_exception.log中看到日志文件
您还可以使用此包的以下格式在您的代码中
use Imediasun\Widgets\ApiController as Import; $importer = new Import(); $importer->setDestination('customers'); $importer->setSource(storage_path('app/csv/zIZSaoFkwDMY2Jchp9AOYanBFvL2mfcKfalbn4uI.csv')); $importer->configureFields([ 'Name'=>['field'=>'name','validators'=>'required|max:255'], 'Email'=>['field'=>'email','validators'=>'required|email'], 'Telefon'=>['field'=>'telefon','validators'=>'max:10'] ]); $result = $importer->process();
描述
此包可以通过在CSV文件的标题中定义名称向数据库添加值。如果CSV没有包含标题,此包将捕获异常,您将收到异常消息。对于简单的导入,您可以在包的根目录中找到示例文件customers.csv。此外,此包使用Laravel队列,您需要在您的Laravel项目中设置它们。为了接收成功和错误电子邮件,您需要在.env文件中配置您的邮件服务器。例如,如下所示
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=mail@gmail.com
MAIL_PASSWORD=Password
MAIL_ENCRYPTION=tls
测试
在app/Widgets目录中有一个测试文件夹。您可以设置您的PhpStorm或其他IDE来运行该文件夹包含的测试。