【问题标题】:ErrorException Undefined array key 7 on Laravel Excel when import or upload excel file导入或上传excel文件时Laravel Excel上的ErrorException未定义数组键7
【发布时间】:2021-11-10 08:10:12
【问题描述】:

我只是使用 laravel 进行项目导入 excel。 但是导入/上传文件excel时出现错误,网页可以打开和工作。

错误异常 未定义的数组键 7

  public function model(array $row)

{

    return new Dso([

        'id_dso' => $row[1],

        'id_rso' => $row[2],

        'id_focus' => $row[3],

        'id_wilayah' => $row[4],

        'id_grup_wilayah' => $row[5],

        'nama_dso' => $row[6],

        'status' => $row[7],

    ]);

}

我的数据库格式表是

+-----------------+---------------------+------+-----+---------------------+-------------------------------+
| Field           | Type                | Null | Key | Default             | Extra                         |
+-----------------+---------------------+------+-----+---------------------+-------------------------------+
| id              | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment                |
| id_dso          | bigint(20) unsigned | NO   |     | NULL                |                               |
| id_rso          | bigint(20) unsigned | NO   |     | NULL                |                               |
| id_focus        | bigint(20) unsigned | NO   |     | NULL                |                               |
| id_wilayah      | bigint(20) unsigned | NO   |     | NULL                |                               |
| id_grup_wilayah | bigint(20) unsigned | NO   |     | NULL                |                               |
| nama_dso        | varchar(255)        | NO   |     | NULL                |                               |
| created_by      | varchar(255)        | NO   |     | NULL                |                               |
| created_date    | timestamp           | NO   |     | current_timestamp() | on update current_timestamp() |
| modified_by     | varchar(255)        | NO   |     | NULL                |                               |
| modified_date   | timestamp           | YES  |     | NULL                |                               |
| status          | tinyint(1)          | NO   |     | NULL                |                               |
| created_at      | timestamp           | YES  |     | NULL                |                               |
| updated_at      | timestamp           | YES  |     | NULL                |                               |
+-----------------+---------------------+------+-----+---------------------+-------------------------------+
14 rows in set (0.009 sec)

我的数据样本是

Import data Sample

我使用的是 laravel 8.6,我的数据库是 MariaDb。

【问题讨论】:

  • $row 是一个包含 7 个项目的数组吗?在这种情况下,它是 0-indexed ($row[0] ... $row[6])

标签: excel laravel import undefined


【解决方案1】:

请从 $row[0] 而不是下面给出的 $row[1] 开始您的数组 $row 索引

public function model(array $row)

{

    return new Dso([

        'id_dso' => $row[0],

        'id_rso' => $row[1],

        'id_focus' => $row[2],

        'id_wilayah' => $row[3],

        'id_grup_wilayah' => $row[4],

        'nama_dso' => $row[5],

        'status' => $row[6],

    ]);

}

试试这个。

【讨论】:

    【解决方案2】:

    数组从索引 0 开始。

    所以从$row[0] 开始直到$row[6]

    在您的情况下,密钥 status 将是 $row[6]

    public function model(array $row)
    {
        return new Dso([
            'id_dso' => $row[0],
            'id_rso' => $row[1],
            'id_focus' => $row[2],
            'id_wilayah' => $row[3],
            'id_grup_wilayah' => $row[4],
            'nama_dso' => $row[5],
            'status' => $row[6],
        ]);
    }
    

    【讨论】:

    • 对不起,我的解释不清楚。我的意思是当我导入 excel 时会发生,因为网页可以打开
    【解决方案3】:

    试试这个

    public function model(array $row)
        
        {
        
            return new Dso([
        
                'id_dso' => $row[1],
        
                'id_rso' => $row[2],
        
                'id_focus' => $row[3],
        
                'id_wilayah' => $row[4],
        
                'id_grup_wilayah' => $row[5],
        
                'nama_dso' => $row[6],
        
                'status' => ($row[7]) ? $row[7] : ' ',
        
            ]);
        
        }
    

    【讨论】:

    • 我试过了,但还是同样的错误。网页导入excel文档没问题时会出现这种情况
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多