Получение связанных записей с использованием Pivot таблицы

2021.02.12  |  581

Подготовка моделей и получение связанных записей "сквозь" Pivot таблицу. В премере мы получаем связанные темы статьи указывая по ее id.

В примере модели хранятся в папке App\Models.
Таблица articles id int(11) name varchar(255)
Таблица themes id int(11) name varchar(255)
Таблица theme_article id int(11) article_id int(11) theme_id int(11)
Модель Article namespace App\Models; use Illuminate\Database\Eloquent\Model; class Article extends Model { public function themes() { return $this->belongsToMany('App\Models\Theme', 'theme_article', 'article_id', 'theme_id'); } } Модель Theme namespace App\Models; use Illuminate\Database\Eloquent\Model; class Theme extends Model { public function articles() { return $this->belongsToMany('App\Models\Article', 'theme_article', 'theme_id', 'article_id'); } } Получение тем текущей статьи: $themes = Article::find($articleIid)->themes()->get(); Добавление множественных связей с темами для статьи: $article->themes()->attach($themeId, ['theme_id' => $themeId]);