【发布时间】:2019-12-29 14:22:42
【问题描述】:
我正在使用 Maatwebsite/excel 组件导入 excel 文件。在这种情况下,导入用户。我需要验证邮件不存在,然后导入唯一数据
我在导入文件中有这段代码
namespace App\Imports;
use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithValidation;
class UsersImport implements ToModel, WithValidation
{
use Importable;
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
$user = User::create([
'name' => $row[0],
'email' => $row[1],
'password' => Hash::make($row[2]),
]);
$user->assignRole('guest');
}
public function rules(): array
{
return [
'0' => 'required|string',
'1' => 'unique:users',
];
}
}
我的控制器中的这段代码:
public function import()
{
Excel::import(new UsersImport, request()->file('file'));
return back()->with('success', 'Importado con éxito!');
}
当我想导入重复数据时,出现以下错误
SQLSTATE[42S22]:未找到列:1054 'where 子句'中的未知列'1.1'(SQL:从users 中选择计数(*)作为聚合,其中1.1 = admin@adsmdfin。 com)
【问题讨论】:
标签: excel laravel validation import