imediasun/laravel-csv-import

用于Laravel-5的组件包

dev-master 2019-04-18 21:07 UTC

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来运行该文件夹包含的测试。