laravel - 如何通过数据透视表获取数据

时间:2017-12-27 11:55:39

标签: mysql laravel pdo model

我有laravel的问题。我已经在laravel中的模型级别创建了表和关系之间的关系但是如果我想向视图显示数据,则会出现错误:此集合实例上不存在属性[category]。 < / p>

这部电影的表格叫做:视频

带有类别的表称为:categories

调用数据透视表:category_video

视频型号代码:

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

类别型号代码:

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}}它显示单行的所有内容

顺便说一句,如何在模型中指定数据透视表的名称?

2 个答案:

答案 0 :(得分:0)

类别是您需要循环的集合:

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

答案 1 :(得分:0)

即使只有一条与该关系相关联的记录,

belongsToMany也会返回一个集合。 您需要在foreach循环中访问它。 像这样。

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