2016-10-06 8 views
2

これは重複しているかもしれませんが、私の問題の解決策は見つかりませんでした。 データベースから少数のレコードを取得して、それらを表示することを試みています。しかし常に得る未定義のインデックス:0例外。 ここでは、コントローラのコードです:未定義のインデックス0 php laravel(重複している可能性あり)

public function gettopfirms(){ 
    $top = Top::all(); 
    foreach ($top as $tFirm) { 
     $topFirms[] = Firm::whereId($tFirm['id'])->get()->toArray(); 
    } 
    return view('top', compact('topFirms')); 
} 

そして、ここでビュー(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 

何が間違っているのかわからない、苦労しているとグーグルは、解決策を見つけられませんでした。

答えて

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

は方法がわかりません!しかし、(isset)はそのトリックをしました。ありがとう:) –

関連する問題