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

23.04.2021 | 1083 | SQL

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

В примере модели хранятся в папке AppModels.
Таблица 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 AppModels;

use IlluminateDatabaseEloquentModel;

class Article extends Model
{
  public function themes()
  {
    return $this->belongsToMany('AppModelsTheme', 'theme_article', 'article_id', 'theme_id');
  }
}
Модель Theme
namespace AppModels;

use IlluminateDatabaseEloquentModel;
class Theme extends Model
{
  public function articles()
  {
    return $this->belongsToMany('AppModelsArticle', 'theme_article', 'theme_id', 'article_id');
  }
}
Получение тем текущей статьи:
$themes = Article::find($articleIid)->themes()->get();
Добавление множественных связей с темами для статьи:
$article->themes()->attach($themeId, ['theme_id' => $themeId]);



← Назад

Комментарии (0)