如何修复奇怪的"Undefined offset"? (laravel)

How to fix strange "Undefined offset"? (laravel)

我在下面有这些代码,它总是 return undefined offset 错误。

我使用 dd 获取数据值,它在索引 1 中有值。

array:3 [▼
  0 => "Title 1"
  1 => "Content1"
  2 => "Subcontent1"
]

但是当我 运行 错误 returned:

Undefined offset: 1

我的代码

class BlogsImport implements ToModel
{
    use Importable;

    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        // dd($row);
        return new Blogs([
            'title' => $row[0],
            'content' => $row[1],
        ]);
    }
}

以这种方式更改您的代码

class BlogsImport implements ToModel
{
    use Importable;

    /**
     * @param array $row
     *
     * @return \Illuminate\Database\Eloquent\Model|null
     */
    public function model(array $row)
    {
        return new Blogs([
            'title' => $row[0] ?? '', // or $row[0] ?? 'default_value' 
            'content' => $row[1] ?? '', // or $row[1] ?? 'default_value'
        ]);
    }
}

我用 dump 而不是 dd 来计算。原来有一些空单元格。

感谢@JustCarty 的提示。

public function model(array $row)
{
    if ($row[0]) {
        return new News([
            'title' => $row[0],
            'content' => $row[1],
        ]);
    }
}