Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmMRHMT 187 of 252 menu
◀ ▶

Связь один ко многим через в Laravel

Связь один ко многим через нужна, когда конечные записи доступны через промежуточную таблицу. Для этого используют метод hasManyThrough.

Пусть есть категории, посты и комментарии. Категория имеет много постов, пост - много комментариев. Комментарии категории можно получить через посты:

categories

  • id
  • name

posts

  • id
  • title
  • category_id

comments

  • id
  • text
  • post_id

В модели категории:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Category extends Model { public function comments() { return $this->hasManyThrough( Comment::class, Post::class ); } } ?>

Первый параметр - конечная модель (комментарии), второй - промежуточная (посты). Получение данных:

<?php $category = Category::find(1); $comments = $category->comments; foreach ($comments as $comment) { echo $comment->text; } ?>

Сделайте таблицы countries, users и posts. Свяжите страну со всеми постами её юзеров через hasManyThrough.

Выведите все посты выбранной страны через отношение.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить