2017-12-27 296 views
1

我有laravel的問題。我已經在laravel的模型級創建了表和關係之間的關係,但是如果我想向視圖顯示數據,則會出現錯誤:此收集實例中不存在屬性[類別]。laravel - 如何通過數據透視表獲得數據

與電影的表稱爲:視頻

表與類別被稱爲:類

樞軸表稱爲:category_video

視頻型號代碼:

public function categories() 
{ 
    return $this->belongsToMany('App\Category'); 
} 

類別model co德:

public function videos() 
{ 
    return $this->belongsToMany('App\Video'); 
} 

在控制器我有這樣的:

$slider_videos = Video::->orderBy('rating','desc') 
    ->limit(5) 
    ->get(); 

鑑於我試試這個:

@foreach($slider_videos as $slider_video) 
    {{$slider_video->category->name}} 
@endforeach 

我要補充的是,當我使用這個:{{$slider_video->category}}它顯示單排所有內容

順便說一句,如何在模型中指定數據透視表的名稱?

+0

** belongsToMany **中的第二個參數是數據透視表名稱。 – yrv16

回答

0

類別是你需要遍歷它的集合:

@foreach($slider_videos as $slider_video) 
    {{ $slider_videos->name }} categories are : 
    @foreach($slider_video->categories as $category) 
     {{$category->name}} 
    @endforeach 
@endforeach 
+0

謝謝你,它的工作! :) –

0

belongsToMany返回集合即使只與關係連接的單記錄。 您需要在foreach循環中訪問它。 像這樣。

@foreach($slider_video->categories as $category) 
    {{$category->>field_name}} 
@endforeach