当不列出foreach中的所有行时,为什么会得到未定义的偏移量?

当尝试使用查询生成器将一些excel数据导入数据库时​​,我遇到问题,即使我拥有的数据列大于4,我也得到未定义的偏移量:4。数据:excel data。关于foreach,我应该了解些什么吗?

public function collection(Collection $rows)
{
    $no = 1;
    foreach ($rows as $row) {
        DB::table('data_train')->insert([
            'no_pendaftaran' => $no,'nama' => $row[1],'jalur' => $row[4],'tahun' => $row[5],'daftar_kembali' => $row[10],]);
        $no++;
        var_dump($row);
    }
}

var_dump($ row)输出:txt var_dump

www4046994 回答:当不列出foreach中的所有行时,为什么会得到未定义的偏移量?

由于您不知道每次迭代的输出,因此应首先检查要插入的变量是否确实有任何数据。尝试类似的东西:

'jalur' => (! empty($row[4])) ? $row[4] : null,

相同的主体适用于您的所有插入字段。

确保您的数据库字段接受nullable,否则将null替换为''

,

'jalur' => $row[4] ?? null

或将其用于不可为空的字段

'jalur' => $row[4] ?? ''

本文链接:https://www.f2er.com/2987464.html

大家都在问