如何解决laravel中失败的作业批处理

如何解决laravel中失败的作业批处理,laravel,file-upload,queue,chunks,job-batching,Laravel,File Upload,Queue,Chunks,Job Batching,我做了一个批处理工作,将csv插入数据库 方法如下: public function upload() { if(request()->has('file')){ $data = file(request()->file); // Chunking file $chunks = array_chunk($data,5); $batch = Bus::batch([])->d

我做了一个批处理工作,将csv插入数据库

方法如下:

public function upload()
{
    if(request()->has('file')){
        $data = file(request()->file);
        
        // Chunking file
        $chunks = array_chunk($data,5);
       
        $batch = Bus::batch([])->dispatch();

        foreach($chunks as $chunk){
            
            $data = array_map('str_getcsv',$chunk);

            $batch->add(new BinlocCsvProcess($data));
        } 

        return $batch;
    }
    return 'please upload file';
}
这是我的职业课:

class BinlocCsvProcess implements ShouldQueue {

public $data;
/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct($data)
{
    $this->data = $data;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    foreach($this->$data as $item){
        Binloc::create($item);
    } 
}
}

我不知道如何得到错误,为什么它不工作,我也不知道如何解决它


请帮帮我。

出现错误是因为行
foreach($this->$data as$item)
。你应该删除
$
,所以你的代码应该是这样的
foreach($this->data as$item)

你能指定错误是什么吗>我不知道如何获取错误。当我运行php artisan queue:work时,所有进程都失败了,我得到了错误。ErrorException:Undefined变量/binloc/app/Jobs/BinlocCsvProcess.php中的数据:36创建新作业实例。从课堂上看,问题解决了。在handle()方法中,应该是$this->data as$item,而不是$this->$data as$item。非常感谢JEJThanks主持人