Laravel与表格的关系

时间:2019-03-20 21:58:04

标签: laravel eloquent

我的问题不是那么简单。 我有三张桌子。

1。)Company_users(包含所有用户数据)

2。)会话(存储了session_id的位置)

3。)参与对话(例如:user_id:190,conversation_id:209)(user_id:191,session_id: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 :(得分:0)

希望下面的代码可以工作。

$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_usercompany_users_conversations

的任何详细信息