php - 未定义索引 0 php laravel(可能重复)

标签 php mysql laravel-5 eloquent

这可能是重复的,但我找不到解决我的问题的方法。 我正在从数据库中检索一些记录并试图在 View 中显示它们。但总是得到 Undefined index: 0 异常。 这是 Controller 代码:

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)

这是我在 View 中简单地打印数组的时候

Array
(
 [0] => Array
    (
        [id] => 7092
        [rank] => 147
        [name] => Grupo Grana y Montero (GyM),
     )

)
Array
(
 [0] => Array 
  (
     [id] => 2 //And So On

不知道我在做什么,挣扎和谷歌搜索,没有找到解决方案。

最佳答案

问题是您可能没有检查数组是否已设置。所以解决方案应该是这样的,即:

<?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'));
}

关于php - 未定义索引 0 php laravel(可能重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889084/

相关文章:

php - 如何在 LARAVEL 5.2 中将数据存储到数据库

php - Laravel 5.7 : Argument 1 passed to

mysql - Laravel 5.2 从数据库表中选择时出现未知列

php - PHP xmlwriter 文档中的换行符

php - AFNetworking 1.x 将 JSON 发布到 PHP

php - 口语变体关系数据库设计的最佳实践

php - 在mysql中插入序列化数组

php - 在网页中嵌入 AVI/MPG

php - 如何在 whatsapp 和其他社交媒体上分享我的网站链接?

php - Select 内的 SQL Select 不接受 WHERE x LIKE %y%