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

Laravel Excel导入-如何获取导入的用户,laravel,laravel-excel,Laravel,Laravel Excel,我需要从excel工作表导入用户。 一切都很好,但在导入之后,我必须对那些导入的用户做更多的事情。导入后如何将它们放入控制器中 我试图遵循Laravel Excel文档,但它非常神秘:( 无论如何,我有一个类UserImport,如他们的示例所示: <?php namespace App\Imports; use App\User; use Illuminate\Support\Facades\Hash; use Maatwebsite\Excel\Concerns\ToModel;

我需要从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]),
        ]);
    }
}

从“导入基础知识”下的文档中

导入到数组或集合

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

$array=Excel::toArray(新用户simport,'users.xlsx');

$collection=Excel::toCollection(新用户simport,'users.xlsx');

在您的情况下,您可能可以直接访问
$import->toArray()
。但我不确定。试一试。

$import->toArray()不幸无法工作-它说:需要传递一个文件路径或上载的文件才能开始导入。当我给它类似$import->toArray(request()->file('xlsfile')的文件时);结果是一样的:App\Imports\UsersImport{#372▼ #输出:空#错误:[]}
$import = new UsersImport();
    $import->import(request()->file('xlsfile'));
    if($import->errors()->count())
    {
        dump($import->errors());
    }
    else
    {
        echo 'Success<br>';

        dd($import);
    }
App\Imports\UsersImport {#372 ▼
  #output: null
  #errors: []
}