Laravel - Выбрать / присоединиться к друзьям в таблице сообщений - PullRequest
0 голосов
/ 12 июня 2018

Я довольно новичок в laravel и в операторах SQL, и я пытаюсь заставить сообщения отображаться или загружать сообщения как для вошедшего в систему пользователя, так и для его друзей.У таблицы сообщений есть author_id, а у таблицы друзей - отправитель / получатель / статус. Где отправитель или получатель может быть текущим вошедшим лицом, а статус - 2 (Принят). В настоящее время у меня есть

@foreach(Friends::where("sender", "=", Auth::user()->id)->orWhere("recipient", "=", Auth::user()->id)->where("status", "=", 2)->get() as $friend)
@foreach(Posts::where("author_id", "=", Auth::user()->id)->orWhere("author_id", "=", $friend->recipient)->where("relation", "=", "feed")->orderBy('post_time', 'DESC')->orderBy('post_date', 'DESC')->get() as $post)

Может ли кто-нибудь сказать мне или показать, как я могу присоединиться к сообщениям / друзьям и иметь один цикл для отображения контента как из моей, так и из моих учетных записей друзей.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я бы продолжил с ответом @tirta, пожалуйста, подтвердите, что у вас есть отношение с именем 'posts' в модели 'Friends', тем самым устанавливая связь между 'Friends.php' и 'Posts.php'.

0 голосов
/ 12 июня 2018

Я надеюсь, что это может помочь

@php

$friendsPosts = Friends::where("sender", "=", Auth::user()->id)
                    ->orWhere("recipient", "=", Auth::user()
                    ->id)->where("status", "=", 2)
                    ->with([ 'posts' => function ($query) {
                        $query->where("relation", "=", "feed")
                            ->orderBy('post_time', 'DESC')
                            ->orderBy('post_date', 'DESC');
                    }])->get();
                            
@endphp

@foreach ($friendsPosts as $post)

<!-- code inside the loop -->

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