АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python и фреймворки. Сегодня последний день для записи! Жми!
⊗pplrPmMRSIOTM 133 of 194 menu
Бесплатные курсы по Git. Начинаем, когда соберется 1000 желающих:) Жми для записи!

Несколько обратных связей один ко многим в Laravel

Может такое быть, что одна таблица имеет несколько связей. Давайте посмотрим, как действовать в таком случае.

Пусть у нас есть таблица с постами:

posts

  • id
  • title

Таблица с юзерами:

users

  • id
  • name

И пусть у нас есть таблица с комментами, в который каждый коммент связан со своим постом и со своим юзером:

comments

  • id
  • text
  • post_id
  • user_id

Давайте пропишем эту связь в модели для комментов:

<?php class Comment extends Model { public function post() { return $this->belongsTo(Post::class); } public function user() { return $this->belongsTo(User::class); } } ?>

Теперь при получении коммента мы можем получить его пост и его юзера:

<?php class CommentController extends Controller { public function show() { $comment = Comment::find(1); dump($comment); dump($comment->post); dump($comment->user); } } ?>

Сделайте следующие таблицы:

cities

  • id
  • name

positions

  • id
  • name

users

  • id
  • name
  • city_id
  • position_id

Сделайте модель с юзерами, модель с городами и модель с должностями.

Свяжите юзера с его городом и с его должностью отношением belongsTo.

Получите юзера вместе с его городом и должностью.