gpt4 book ai didi

excel - Laravel Excel 验证导入

转载 作者:行者123 更新时间:2023-12-04 19:58:42 28 4
gpt4 key购买 nike

我正在使用 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',
];
}

}

我的 Controller 中的这段代码:

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 where 1 选择 count(*) 作为聚合>.1 = [email protected] )

最佳答案

验证器的存在规则将使用数组的键(在您的例子中为 1)作为在用户表中搜索的列。

您可以像这样指定列,它应该可以工作。

'1' => 'unique:users,email',

来自:https://laravel.com/docs/5.8/validation#rule-exists

关于excel - Laravel Excel 验证导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57640187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com