Laravel excel在行结束后继续验证数据

lmyy7pcs  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(132)

[验证另外989行][1] [1]:https://i.stack.imgur.com/4ErrL.png
我用laravel-excel创建了导入函数,并按要求创建了一列。该文件包含10行,但在检查失败后,它总是返回另一个989行,低于数据和标题..有什么建议吗?
我的控制器

public function import(Request $request)
    {
        $import = new StudentsImport;

        $import->import($request->file('file'));

        foreach ($import->failures() as $failure) {
            foreach ($failure->errors() as $key => $value) {
                $test[] = $value;
            }
        }
        return $test;

    }

我的进口

class StudentsImport implements ToModel, WithHeadingRow, SkipsOnError, WithValidation, SkipsOnFailure
{
    use SkipsErrors;
    use Importable;
    use SkipsFailures;

    public function model(array $row)
    {
        return new User([
            'name' => $row['nama_siswa'],
            'email' => $row['email'],
            'username' => $row['nisn'],
            'password' => $row['password'],
            'dob' =>  $row['dob'],
            'nisn' => $row['nisn']
        ]);
    }

    public function rules(): array
    {
        return [
            'nisn'      => 'required|numeric'
        ];
    }
}
wz3gfoph

wz3gfoph1#

@juanzu,如果您的Excel文件有10条记录,并且遇到错误,请尝试删除数据后面的所有行。要执行此操作,请执行以下步骤:

  • 单击第11行中的单元格(紧接着数据之后的行)。
  • 按Ctrl + Shift +下箭头键选择下面的所有行。
  • 按Ctrl + Shift +右箭头选择右侧的所有列。
  • 右键单击所选区域,然后从出现的上下文菜单中选择“删除”选项。完成此操作后,问题应该得到解决。

但是,您提到在导入数据并在数据库中创建记录后,仍然会看到验证错误,就好像存在循环一样。请澄清您的问题,以便我更好地理解问题并提供进一步的指导。

相关问题