2017-12-27 17 views
1

Ich habe ein Problem mit Laravel. Ich habe Beziehungen zwischen Tabellen und Beziehungen auf Modellebene in Laravel erstellt, aber wenn ich Daten in der Ansicht anzeigen möchte, erhalte ich einen Fehler: Eigenschaft [Kategorie] existiert nicht für diese Sammlungsinstanz.Laravel - Wie bekomme ich Daten von Pivot-Tabelle

die Tabelle mit den Filmen heißt: Video

die Tabelle mit den Kategorien genannt: Kategorien

die Pivot-Tabelle genannt wird: category_video

Video Modellcode:

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

Kategorien Modell co de:

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

In Controller ich habe dies:

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

Im Hinblick ich versuche dies:

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

Ich will hinzufügen, dass, wenn ich diese: {{$slider_video->category}} Es zeigt den gesamten Inhalt der einzelnen Zeile

Übrigens, wie kann ich den Namen der Pivot-Tabelle im Modell angeben?

+0

Zweiter Parameter in ** belongsToMany ** ist Pivot-Tabellenname. – yrv16

Antwort

0

Kategorien sind eine Sammlung Sie über sie in einer Schleife müssen:

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

Danke, dass es funktioniert! :) –

0

belongsToMany gibt eine Auflistung, selbst wenn es nur mit der Beziehung verknüpft ein einzelner Datensatz ist. Sie müssen darauf in einer foreach Schleife zugreifen. Wie so.

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