belongsToMany не работает
У меня есть 3 таблицы
videos (id)
video_user (user_id, video_id)
users (id)
Мне нужно чтобы я мог получить все видео, которые опубликовал пользователь
Я уже попытался это сделать таким образом:
User.php (Модель)
public function videos() {
return $this->belongsToMany(Video::class);
}
Video.php (Модель)
public function users() {
return $this->belongsToMany(User::class);
}
Но этот вариант ничего не возвращает
Ответы (1 шт):
Автор решения: Knyaz71
→ Ссылка
Если в belongsToMany явно не указывать таблицу (вторым параметром), то она определяется как "производная от алфавитного порядка имен связанных моделей".
Получается что промежуточная таблица должна быть user_video.
Либо просто указать название таблицы во втором параметре
$this->belongsToMany(User::class, 'video_user');
Дальнейшее использование, например...
$user = User::with('videos')->first();
foreach ($user->videos as $video) {
dump($video);
}
По сути with можно не указывать. Но на сколько знаю, разница в том, что при указании with сразу подгружает данные, а без указания - по необходимости.