Laravel Excel导入-如何获取导入的用户
我需要从excel工作表导入用户。 一切都很好,但在导入之后,我必须对那些导入的用户做更多的事情。导入后如何将它们放入控制器中 我试图遵循Laravel Excel文档,但它非常神秘:( 无论如何,我有一个类UserImport,如他们的示例所示: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;
<?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: []
}