Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. Есть три таблицы. Users, Conversations, Messages.
Таблица Conversations имеет три столбца id, id_first_user, id_second_user
Таблица Messages имеет два столбца conversation_id(id c таблицы Conversation) и message
Как грамотно настоить связи между этими таблицами в базе и между моделями?
Не в сети
Тебе нужно еще таблица converstion_user
User::belongsToMany(Conversation)
User::hasMany(Message)
Conversation::belongsToMany(User)
Conversation::hasMany(Message)
Message::belongsTo(User) // в сообщение обязательно должно быть user_id иначе как мы узнаем кто его отправил. у тебя его нет. так же сюда можно засунуть read_at чтобы отображать прочитано оно или нет
Message::belongsTo(Conversation)
связку user->conversation можно еще объявить как
// User
public function conversations()
{
return $this->belongsToMany(Conversation::class)
->withPivot('name') // сюда можно положить название которое будет отображаться для каждого участника диалога. например если общаются Василий с Петром то для Василия диалог будет отображатьс как "Петр", а для Петра как "Василий"
->withTimestamps();
}
Пишу бэкенд для своего мобильного приложения, делюсь с миром, заходите посмотреть, много всего интересного https://youtu.be/C5M6-ycJ5gs
Не в сети
Страницы 1