2017-12-27 30 views
1

laravelに問題があります。私はlaravelのモデルレベルでテーブルとリレーションシップの関係を作成しましたが、ビューにデータを表示したい場合、エラーが発生します。プロパティ[category]がこのコレクションインスタンスに存在しません。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}}を1行の内容をすべて表示しています

ところで、モデルでピボットテーブルの名前を指定するにはどうすればよいですか?

+0

** belongsToMany **の2番目のパラメータはピボットテーブル名です。 – 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 
関連する問題