2016-02-28 168 views
1

我有愨項和插曲Laravel嵌套關係foreach循環

項目這種關係:

public function episodes() 
    { 
     return $this->hasMany(episode::class); 
    } 

情節:

public function item() 
     { 
      return $this->belongsTo(item::class); 
     } 

在控制器

$latestanimes = DB::table('episodes')->where('category', 'anime') 
      ->orderBy('created_at', 'desc') 
      ->take(5) 
      ->get(); 

我」什麼正在嘗試d o是讓動漫的標題它屬於每一集

     @foreach($latestanimes as $episode) 
           <tr> 
           <td> 
            @foreach($episode->item as $parrent) 
             {{ $parrent->title; }} 
            @endforeach 
           </td> 
           <td>{{ $episode->number }}</td> 
           <td>{{ $episode->category }}</td> 
          </tr> 
         @endforeach 

這給我的「未定義的屬性:stdClass的:: $項目」

我試圖調試在routes.php文件

Route::get('/dd/{id}', function($id){ 

     $episode=App\episode::find($id); 
     echo $episode->name. '<hr>'; 

     $item=$episode->item; 
     echo $item->title; 

    }); 

這個工程... 有沒有辦法直接訪問它?像

{{ $episode->item->title }} 

在此先感謝

回答

0

修正了它。我直接使用查詢構建器DB這是不能言說。

$latestanimes = episode::with('item') //eager loading, thanks lagbox 
      ->where('category', 'anime') 
      ->orderBy('created_at', 'desc') 
      ->take(5) 
      ->get(); 

,我怎麼想,我可以直接訪問它擺在首位

{{$episode->item->title}} 
0

在你的代碼中的一些問題,那就是你寫屬於關聯,這意味着一集劇集模型只有一個引起foreach循環簡化版,項目工作。