Несколько внешних ключей из одной таблицы - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть приложение Laravel с базой данных MySQL, которая имеет 3 таблицы: Publication, Comment и User.

Когда я отображаю публикацию для пользователя, я звоню WS GET Publication By Id и WP GET Comment By Publication Id для отображения всех комментариев, относящихся к этой публикации.

Я хочу знать, есть ли способ избежать вызова WP GET User By Comment Id для каждого комментария, потому что при отображении комментария мне также нужно отображать некоторые Информация для пользователя, который прокомментировал.

Можно ли добавить многопользовательские внешние ключи в таблицу Comment и использовать их?

Заранее спасибо.

1 Ответ

1 голос
/ 11 апреля 2020

Это очень общий c вариант использования. Можете ли вы увидеть, отвечает ли это на ваш вопрос.

Publication model{
whatever fields you have,
//Comments --> One to many relation with Comment model
 public function comments()
 {
     return $this->hasMany('App\Comment');
 } 
}

Comment Model{
whatever fields you have,
//User --> One to one relation with User model
 public function user()
 {
     return $this->hasOne('App\User');
 }
}

User Model{
fields...
}

В вашем контроллере вы можете получать публикации с комментариями и пользователями с помощью функции.

$pub = Publication::first()->with('comments.user');

Надеюсь, это поможет.

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