Dre*_*nos 2 validation import excel laravel
我正在使用 Maatwebsite/excel 组件导入 excel 文件。在本例中,导入用户。我需要验证邮件不存在,然后导入唯一数据
\n\n我在导入文件中有此代码\n\n\n
namespace App\\Imports;\n\nuse App\\User;\nuse Illuminate\\Support\\Facades\\Hash;\nuse Maatwebsite\\Excel\\Concerns\\ToModel;\n\nuse Maatwebsite\\Excel\\Concerns\\Importable;\nuse Maatwebsite\\Excel\\Concerns\\WithValidation;\n\nclass UsersImport implements ToModel, WithValidation\n{\n use Importable;\n /**\n * @param array $row\n *\n * @return \\Illuminate\\Database\\Eloquent\\Model|null\n */\n public function model(array $row)\n {\n $user = User::create([\n 'name' => $row[0],\n 'email' => $row[1], \n 'password' => Hash::make($row[2]),\n ]);\n\n $user->assignRole('guest');\n }\n\n public function rules(): array\n {\n return [\n '0' => 'required|string',\n '1' => 'unique:users',\n ];\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的控制器中的这段代码:
\n\npublic function import() \n{\n Excel::import(new UsersImport, request()->file('file'));\n\n return back()->with('success', 'Importado con \xc3\xa9xito!');\n}\nRun Code Online (Sandbox Code Playgroud)\n\n当我想导入重复数据时,出现以下错误
\n\nSQLSTATE[42S22]:未找到列:1054“where 子句”中的未知列“1.1”(SQL:选择 count(*) 作为来自userswhere的聚合1。1= admin@adsmdfin.com)
验证器的存在规则将使用数组的键(在您的例子中为 1)作为在用户表中搜索的列。
您可以像这样指定列,它应该可以工作。
'1' => 'unique:users,email',
Run Code Online (Sandbox Code Playgroud)
来自: https: //laravel.com/docs/5.8/validation#rule-exists