这可能是重复的,但我找不到解决问题的方法。 我正在从数据库中检索少量记录并尝试在视图中显示它们。但总是得到未定义索引:0 异常。 这是控制器代码:
public function gettopfirms(){
$top = Top::all();
foreach ($top as $tFirm) {
$topFirms[] = Firm::whereId($tFirm['id'])->get()->toArray();
}
return view('top', compact('topFirms'));
}
这里是view(top.blade.php)代码:
<?php
foreach ($topFirms as $firm) {
echo "<pre>";
print_r($firm[0]); //or $firm[0]['name']
echo "</pre>";
}
?>
以下是错误:
Undefined offset: 0 (View: xxxxx/resources/views/top.blade.php)
这时我只是在视图中打印数组
Array
(
[0] => Array
(
[id] => 7092
[rank] => 147
[name] => Grupo Grana y Montero (GyM),
)
)
Array
(
[0] => Array
(
[id] => 2 //And So On
不知道我做错了什么,挣扎和谷歌搜索,没有找到解决方案。
答案 0 :(得分:1)
问题是您可能不检查数组是否已设置。所以解决方案应该是这样的,即:
<?php
foreach ($topFirms as $firm) {
if (!isset($firm[0])) {
continue;
}
echo "<pre>";
print_r($firm[0]); //or $firm[0]['name']
echo "</pre>";
}
?>
您可能还想提前过滤掉它,所以在这里:
public function gettopfirms(){
$top = Top::all();
foreach ($top as $tFirm) {
$topFirms[] = Firm::whereId($tFirm['id'])->get()->toArray();
}
$topFirms = array_filter($topFirms);
return view('top', compact('topFirms'));
}