Laravel Отношения с таблицами - PullRequest
0 голосов
/ 21 марта 2019

Мой вопрос не так прост. У меня есть три стола.

1.) Company_users (со всеми данными пользователей)

2.) Беседы (где хранится разговор_ид)

3.) Conversation_participates (пример: ИД пользователя: 190, ИД разговора: 209) (ИД пользователя: 191, ИД разговора: 209)

Итак, что я хочу сделать, это: Я хочу получать разговоры авторизованного пользователя (например, 209 210 220)

И затем мне нужно присоединиться к таблице Conversation_participates и получить соответствующего пользователя, не получая авторизованного, для отображения соответствующей пользовательской информации из таблицы Company_users на странице активных пользовательских сообщений.)

Как это можно сделать?

 $chats = DB::table('company_users_conversation_user')->where('company_users_conversation_user.user_id', $this->auth_user->id)
            ->leftJoin('company_users_conversations', 'company_users_conversation_user.conversation_id', '=', 'company_users_conversations.id')
            ->join('company_users_conversation_user as cucu', function($query) {
                $query->where('cucu.conversation_id', '=', 'company_users_conversations.id')
                    ->where('cucu.user_id', '!=', 'company_users_conversation_user.user_id');
            })
            ->get();

Это то, как далеко я дошел, но на самом деле это не дает правильных данных.

1 Ответ

0 голосов
/ 21 марта 2019

надеюсь, что приведенный ниже код будет работать.

$chats = DB::table('Company_users')           
        ->join('Conversation_participates', 'Conversation_participates.user_id', '=', 'Company_users.user_id')
        ->join('Conversations', 'Conversations.conversation_id','Conversation_participates.conversation_id')
        ->where('Company_users.user_id', $activeUserId)
        ->get();

$activeUserId можно взять из сеанса аутентификации.

Запрос основан на трех таблицах, которые вы упомянули в вопросе.у нас нет никакой информации о company_users_conversation_user, company_users_conversations

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