繁体   English   中英

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

[英]laravel - How to get data by pivot table

我的Laravel有问题。 我在laravel中的模型级别上创建了表和关系之间的关系,但是如果我想向视图显示数据,则会收到错误消息: 该集合实例上不存在属性[category]。

电影的桌子叫做:视频

具有类别的表称为:类别

数据透视表称为: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}}它显示的是单行的所有内容

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

类别是您需要遍历的集合:

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

即使只有一条与该关系关联的记录, belongsToMany返回一个集合。 您需要在foreach循环中访问它。 像这样

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM