2014-03-25 24 views
0

我目前正在編寫laravel 4中的項目,並且我試圖回顯一些雄辯數據作爲我正在構建的搜索功能的一部分。雄辯的關係輸出的視圖,未定義的偏移量0

現在,我的問題是:當我嘗試從另一個表(它與主表具有多對多關係)獲取一個值時,我不斷收到一個錯誤,指出未定義的偏移量0,但奇怪的是,相同的代碼只在幾分鐘前工作...(我添加了一些東西,然後ctrl + z'ed一路回到「工作」的一個,現在回想起相同的錯誤)

Controller.php

public function getData() 
    { 

    $data = Routine::with('measurements')->get(); 


     return View::make('sok') 
     ->with('title', 'Søk') 
     ->with('data', $data); 
    } 

View.blade.php

@if(isset($data)) 
     <table> 
      <tr> 
       <td>ID</td> 
       <td>Tittel</td> 
       <td>Verdi</td> 
       <td>Ansatt ID</td> 
      </tr> 
     @foreach ($data as $data) 
      <tr> 
       <td>{{ $data->id }}</td> 
       <td>{{ $data->measurements[0]->title }}</td> //This be the one that errors 
       <td>{{ $data->value }}</td> 
       <td>{{ $data->emp_id }}</td> 
      </tr> 
     @endforeach 
     </table> 
    @endif 

我目前不知所措,任何幫助將不勝感激。

+0

你可以發佈$ data的var_dump嗎? – clod986

+0

var_dump的一部分:http://imgur.com/AG2eD7p 太複雜了,只能複製粘貼,但實際上它在索引上使用+1下降了十幾次。 – user249494

+0

如果你var_dump($ data-> measurements)呢? – clod986

回答

-1

measurements將是一個集合,而不是一個數組,所以試圖獲得它的第一個值與$data->measurements[0]->title將無法​​正常工作。

相反,嘗試,$data->measurements->first()->title

編輯:做一些測試後,兩種方式均有效。

使用$data->measurements()->first()->title;沒有可用數據將導致Trying to get property of non-object

使用$data->measurements[0]->title;將導致Undefined offset: 0

這似乎好像哪個數據您正在使用的是無效的。您可能需要手動檢查數據庫以確保其中存在數據並且數據有意義。

clod's答案應該有效。如果你期待有永遠是結果,這將是最好使用has()而非where()

+0

這樣做,但要記住,如果沒有測量它可能會返回一個錯誤 – clod986

+0

嘿,試過了,它給我一個異常,試圖獲取非對象的屬性,但就像我說的那樣早些時候使用測量[0],現在突然沒有。 – user249494

1

在你看來:

@if(isset($data)) 
     <table> 
      <tr> 
       <td>ID</td> 
       <td>Tittel</td> 
       <td>Verdi</td> 
       <td>Ansatt ID</td> 
      </tr> 
     @foreach ($data as $data) 
      <tr> 
       <td>{{ $data->id }}</td> 
       <td> 
       @if($data->measurements->count()>0) 
        {{ $data->measurements->first()->title }} 
       @endif 
       </td> 
       <td>{{ $data->value }}</td> 
       <td>{{ $data->emp_id }}</td> 
      </tr> 
     @endforeach 
     </table> 
    @endif 
+0

爲我工作,它總是顯示'未定義索引0',使用計數後,它工作 –

0

我有一個非常類似的錯誤。該錯誤消息根本沒有幫助。我的問題竟然是一個錯字,因爲我忘了一個參數傳遞給我「其中」功能,即

$event = $this->events->make()->whereSlug()->first(); 

因此,底線是,經過查詢用細toothcomb和檢查在擔心關係之前,它肯定會檢索記錄。