2017-12-27 295 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