offline version v3
Запись на курсы по HTML, CSS, JavaScript, PHP, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗pplrPmMRSIOTM 133 of 194 menu

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

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

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

<$tastr$> posts id title <-tastr->

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

<$tastr$> users id name <-tastr->

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

<$tastr$> comments id text post_id user_id <-tastr->

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

<?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); } } ?>

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

<$tastr$> cities id name <-tastr->
<$tastr$> positions id name <-tastr->
<$tastr$> users id name city_id position_id <-tastr->

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

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

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