【问题标题】:Import excel file data in database with maatwebsite using queue in laravel使用laravel中的队列将excel文件数据导入数据库中的maatwebsite
【发布时间】:2018-11-22 22:03:43
【问题描述】:

我正在尝试使用 maatiswebsite 将 excel 文件导入数据库。为此,我使用队列,因为导入文件需要一些时间。我想向用户显示一条快速消息“正在导入您的文件。完成后我们会通知您。”但做不到。

QUEUE_DRIVER = 数据库

这是我到目前为止所做的 -
控制器 -

public function import(Request $request) 
{
    Excel::filter('chunk')->load($request->file('import_file')
            ->getRealPath())->chunk(250, function($reader)
    {
        ImportDistributor::dispatch(new ImportDistributor($reader->toArray()));
    });

    dd('your file is being imported. we will inform you once it is done.');

}    

工作 -

public function handle()
{
    if(isset($this->data) && !empty($this->data))
    {
        foreach($this->data as $data)
        {
            DB::table('user_details')->insert($data);
        }
    }
}    

型号 -

<?php

namespace App\Model;
use Illuminate\Database\Eloquent\Model;

class UserDetailsModel extends Model
{
    protected $table = 'user_details';
}

我无法在 user_details 中存储数据。

【问题讨论】:

  • 请分享您的模型。
  • @Deepak 显示错误
  • @LuckySaini 我更新了问题。
  • @JigneshJoisar 没有收到任何错误,它将数据存储到作业表中,但未存储在 user_details 表中。

标签: php laravel queue maatwebsite-excel


【解决方案1】:

您需要在模型中添加$fillable 属性并将所有要保存的字段添加到数据库中

<?php

namespace App\Model;
use Illuminate\Database\Eloquent\Model;

class UserDetailsModel extends Model
{
    protected $table = 'user_details';
    protected $fillable = ["name", "etc", "etc1"];
}

在 Job 中,将代码更改为此。

use App\UserDetailsModel;

public function handle()
{
    if(isset($this->data) && !empty($this->data))
    {
        foreach($this->data as $data)
        {
            UserDetailsModel::insert($data);
        }
    }
}

试试这个。我想这会解决你的问题。

【讨论】:

  • 感谢您的回答,但没有任何改变。
  • 如果我将 QUEUE_DRIVER 更改为同步,它将数据存储在数据库表 user_details 中
【解决方案2】:

如果您使用同步驱动器时导入工作正常,则意味着您需要run the queue worker

php artisan queue:work

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 2022-12-31
    • 2021-06-23
    • 1970-01-01
    • 2019-03-19
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多