@procode
Разработчик

Организация «добавить в друзья» и «в друзьях у» на Laravel?

Задача типовая: организовать "службу друзей" - зафрендить, отфрендить, вывести список и пр. Здесь: Как правильно в Laravel сделать отношения многие-ко-многим модели самой к себе? jazzus предложил годное решение:

Делаем hasMany с User на таблицу друзей юзера
public function friends(){
        return $this->hasMany('App\Models\Friend, 'user_id', 'id');
    }


В этой таблице сделать 2 ид:
Кто добавляет в друзья (Auth:id()) поле user_id
Кого юзер добавляет в друзья - поле friend_id
В итоге методом create делаем запись при добавлении в друзья. Если юзера добавляют в друзья – аналогично.
получаем
$user->friends()->get()
$user->friends()->find($id)


Однако мне непонятно вот что:

- А если мне надо получить список юзеров У которых я в друзьях - тогда что?

Т.е. типовые операции здесь:

- Добавить в друзья
- Убрать из друзей
- Вывести список друзей
- Вывести список "в друзьях у"

Вот с последним пунктом я не понимаю.

И еще - если я хочу сделать "мягкое" удаление из друзей - это флаг во вторую таблицу, так?

Спасибо.
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы