2017-12-27 9 views
1

laravel에 문제가 있습니다. laravel의 모델 수준에서 테이블과 관계 간의 관계를 만들었지 만보기에 데이터를 표시하려는 경우 오류가 발생합니다. 속성 [category]이 컬렉션 인스턴스에 없습니다.laravel - 피봇 테이블로 데이터를 가져 오는 방법

은 영화와 표가 호출됩니다 : 비디오

호출되는 범주

테이블 : 범주

피벗 테이블이라고

: category_video

비디오 모델 코드 :

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

카테고리 co 드 :보기에서

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

내가 이것을 시도 : 컨트롤러에서

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

나는이이

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

내가 추가 할 것이다 나는이 사용하는 경우 : {{$slider_video->category}}를 단일 행의 모든 ​​내용을 표시합니다.

그런데 어떻게 모델에서 피벗 테이블의 이름을 지정할 수 있습니까? 관계와 연결 단 하나의 레코드가있는 경우에도

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

** belongsToMany **의 두 번째 매개 변수는 피벗 테이블 이름입니다. – yrv16

답변

0

카테고리 당신이 그것을 반복 할 필요 모음입니다. foreach 루프에 액세스해야합니다. 이렇게.

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

감사합니다! :) –

0

belongsToMany이 컬렉션을 반환 :

관련 문제