Как получить сообщение с несколькими связями таблиц? - PullRequest
0 голосов
/ 08 июля 2019

моя схема базы данных

Таблица POST

| id | title | content |

Таблица SharedGroup

|id | title | slug 

ТаблицаPost_SharedGroup

|id| post_id | shared_group_id|

Я хочу сделать запрос в laravel, чтобы я дал кусок общей группы и получил сообщение об этом

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Кажется, вы просто хотите базовое соединение между тремя таблицами:

$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();
0 голосов
/ 08 июля 2019
$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');
}
...