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

问题描述 投票:0回答:1

[验证另外 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'
        ];
    }
}
laravel validation import-from-excel maatwebsite-excel laravel-excel
1个回答
0
投票

@juanzu,如果你的Excel文件有10条记录,遇到错误,把数据后面的行全部删掉试试。为此,请按照下列步骤操作:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.