Laravel Отношения Руководство - PullRequest
0 голосов
/ 28 марта 2020

Может ли кто-нибудь сказать мне, как создать связь между 3 таблицами. У меня есть 3 таблицы. Пользователь, профиль и сообщение. Теперь я хочу перечислить все сообщения на домашней странице с именем пользователя из таблицы пользователей и изображением профиля из таблицы профилей и сообщениями из таблицы сообщений.

1 Ответ

0 голосов
/ 28 марта 2020

Есть несколько вещей, которые следует учитывать, прежде чем предлагать какой-либо код. Структура вашей базы данных, классы красноречивых моделей и любые другие условия, которые вы хотите применить перед получением сообщений из базы данных.

Надеюсь, ваша таблица profiles и posts (обе) содержит поле user_id.

Вы должны определить две взаимосвязи.

В Post определение модели:

public function user() {
      return $this->belongsTo('App\User');
    }

В User определение модели:

public function profile() {
      return $this->hasOne('App\Profile');
    }

Теперь, перед пересылкой своих постов $ для просмотра вы можете выполнить следующее заявление:

$posts->load('user.profile);

Это загрузит соответствующего пользователя и его профиль в сообщениях. Как это:

posts:[
    {...,
    user:{
        ...,
        profile:{...}
        }
    },
    ...
]

Рекомендуется дальнейшее чтение:

  1. Принадлежит к отношениям
  2. Вложенная готовая загрузка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...