【发布时间】:2016-02-26 13:20:51
【问题描述】:
我有 5 张桌子:
1. news
2. tags
3. filters
4. news_tag
5. tag_filters
表结构如下:
新闻
id
title
description
标签
id
title
过滤器
id
title
news_tag
id
tag_id
news_id
tag_filter
id
tag_id
filter_id
假设我的表有以下记录:
news: id = 1 title = News_1 Description = Details for News_1
tags: id = 1 title = PHP
filters: id = 1 title = PHP News
news_tag: id = 1 tag_id = 1 news_id = 1
tag_filter: id = 1 tag_id = 1 filter_id = 1
我的模型中的关系如下:
新闻模型
public function tags(){
return $this->belongsToMany('App\Tag', 'news_tag');
}
标签模型
public function news(){
return $this->belongsToMany('App\News', 'news_tag');
}
public function filters(){
return $this->belongsToMany('App\Filter', 'tag_filter');
}
过滤器模型
public function tags(){
return $this->belongsToMany('App\Tag', 'tag_filter');
}
假设我的路线如下:Route::get('news/filter/{filter_id}','NewsController@getNews');
当我将 filter_id 1 传递给我的路线时,我想检索与 tag_id 1 相关的所有新闻。任何人都可以帮助我如何在我的控制器中执行此操作?
【问题讨论】:
标签: php mysql laravel orm eloquent