如何修复奇怪的"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],
]);
}
}
我在下面有这些代码,它总是 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],
]);
}
}