如何获得具有多个表关系的帖子?

时间:2019-07-08 05:09:47

标签: laravel laravel-5 eloquent many-to-many relationship

我的数据库示意图

表POST

| id | title | content |

表SharedGroup

|id | title | slug 

表Post_SharedGroup

|id| post_id | shared_group_id|

我想在laravel中查询一个我给sharedgroup的子弹并获取它的信息

2 个答案:

答案 0 :(得分:0)

$data = Post::whereHas('sharedGroup',function($query) use($slug){
        $query->whereIn('slug',$slug);
       })->get();

其中$slug是您给定的子弹数组

模型发布

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

模型SharedGroup

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

答案 1 :(得分:0)

您似乎只想要三个表之间的基本连接:

$posts = DB::table('POST p')
    ->join('Post_SharedGroup ps', 'p.id', '=', 'ps.post_id')
    ->join('SharedGroup s', 'ps.shared_group_id', '=', 's.id')
    ->whereIn('s.slug', array(1, 2, 3))  // match slug values (1, 2, 3)
    ->select('p.*')
    ->get();