Всем привет.
Пытаюсь разобраться с отношениями между таблицами для взаимодействия с данными, но никак не получается.
У меня есть таблицы:
categories - в которой хранятся созданные категории.
posts - где хранятся все статьи.
item_category - где хранится post_id и category_id.
Мне нужно получить все категории (вместе с
name и
slug из таблицы
categories), которые принадлежат посту.
Основная проблема - я не могу понять, как их связать между собой.
Есть
hasOne, но в нашем случае он, вроде как, не нужен.
Есть
hasMany, с помощью него я могу получить категории для текущего поста, создав в модели
Category:
protected $table = 'categories';
public function category()
{
return $this->hasMany('App\Models\ItemCategory', 'id');
}
(имеет ли смысл еще связать
Category с
Post посредством
belongTo?
И вызвав в PostControllers, для теста:
$post = Post::where('slug', '=', $slug)->first();
$category = $post->category;
foreach ($category as $c)
{
echo $c->category_id . '<br>';
}
Выводятся ID категории, которые принадлежат текущему посту.
Но как мне присоединить к ним еще и модель
ItemCategory (в DB:
item_category), чтобы получить название категории и её ссылку?
Понимаю, что вопрос очень простой, но мне необходимо разобраться)
Поэтому если кто-то покажет на пальцах, как стоит мыслить при формировании отношений - будет отлично!
Заранее спасибо.