Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Версия Laravel в формате 5.4.28
Версия PHP в формате 7
Операционная система и её версия ( Windows 10 x64 )
Вендор и версия сервера БД ( MySQL 5.55 )
Вендор и версия Веб-сервера Nginx 1.6.2
Есть таблица Users с полем id. Есть таблица Comments с полями to_id | text | from_id.
На странице профиля каждого из пользователей есть блок с комментариями. Когда публикуется комментарий, то id пользователя, который оставляет коммент, записывается в from_id, а id пользователя, на чьей странице происходит действие, записывается в to_id.
Соответственно вопрос - как правильно прописать связи, чтобы всё было по фен-шую)
Чтобы на странице профиля можно было бы получить все комменты, например, через $user->comments(). А когда пользователь добавлял бы комментарий, то достаточно бы было сделать что-то на подобии $comment->save($request->all()).
Не в сети
Вопрос из разряда "Не хочу документацию читать, сделайте мне по-бырому". В документации про связи написано очень доступно. Кроме того, я бы посоветовал глянуть в сторону уже готовых пакетов для комментариев. Даже хотя бы в качестве примера кода и связей, например, https://github.com/actuallymab/laravel-comment
Изменено Sergant210 (15.07.2017 12:40:32)
Не в сети
Связь многие ко многим. Нужно определить две связи belongsToMany() между моделью User и User, при этом ключи вручную вбить в связь. Таблица comments здесь - это промежуточная таблица (pivot).
Не в сети
Связь многие ко многим. Нужно определить две связи belongsToMany() между моделью User и User, при этом ключи вручную вбить в связь. Таблица comments здесь - это промежуточная таблица (pivot).
Хорошая идея, спасибо! А почему нужно "ключи вручную вбить в связь" ? Я не могу сделать в миграции так?:
$table->foreign('from_id')->references('id')->on('users');
$table->foreign('to_id')->references('id')->on('users');
Не в сети
В миграциях само собой. Я говорю о вбивании ключей при создании связи. Пример из доков:
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
Не в сети
Страницы 1