Laravel Excel导入-如何获取导入的用户

问题描述 投票:0回答:1

我需要从Excel工作表导入用户。一切都很好,但是在导入之后,我必须与那些导入的用户做更多的事情。导入后如何在控制器中获取它们?

我尝试遵循Laravel Excel文档,但它非常隐秘:(

无论如何,我在他们的示例中都有一个UserImport类:

<?php

namespace App\Imports;

use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    /**
     * @param array $row
     *
     * @return User|null
     */
    public function model(array $row)
    {
        return new User([
           'name'     => $row[0],
           'email'    => $row[1], 
           'password' => Hash::make($row[2]),
        ]);
    }
}

并且在我的控制器中,我有:

$import = new UsersImport();
    $import->import(request()->file('xlsfile'));
    if($import->errors()->count())
    {
        dump($import->errors());
    }
    else
    {
        echo 'Success<br>';

        dd($import);
    }

不幸的是,$ import包含而不是我的记录:

App\Imports\UsersImport {#372 ▼
  #output: null
  #errors: []
}
laravel laravel-excel
1个回答
0
投票

摘自“导入基础知识”下的文档

导入数组或集合

如果您要绕过ToArray或ToCollection问题,并希望在您的控制器中有一系列导入的数据(请注意性能!),则可以使用:: toArray()或:: toCollection()方法。

$array = Excel::toArray(new UsersImport, 'users.xlsx');

$collection = Excel::toCollection(new UsersImport, 'users.xlsx');

根据您的情况,您可能可以直接访问$import->toArray()。但是我不确定。快去吧。

© www.soinside.com 2019 - 2024. All rights reserved.