@itpeople

Eloquent. Нужно ли создавать в базе данных поле, которое будет связывать две таблицы?

Всем здравствуйте. Прочитала документацию по этой теме (Eloquent) несколько раз ) но остаются сомнения. Чтобы связать две таблицы БД, нужно ли создавать в этих таблицах специальные поля для этого, например post_id и category_id? И вообще, нужно ли связывать посты и категории, чтобы вывести посты определенной категории? Заранее всех благодарю!
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 2
solotony
@solotony
покоряю пик Балмера
Eloquent - это "надстройка" над БД. Сам по себе он ничего создавать не требует.

В твоем случае каждый пост относится к какой-то категории. То есть в таблице 'posts' есть поле 'category_id'
(ссылающееся на поле 'id' таблицы 'categories')

Когда ты описываешь модели в Eloquent то указываешь эту связь

для категории
HasMany('App\Post', 'category_id', 'id')

для поста
BelongsTo('App\Category', 'category_id', 'id')

---
если ты используешь отношения Eloquent для вывода постов
Category::with('posts')
$category->posts()

то связывать надо

если ты используешь where
Posts::where('category_id', $catid)
то связывать не надо
Ответ написан
Комментировать
zvermafia
@zvermafia
WebDev
Да нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы