【问题标题】:Check user if is in chat room Laravel检查用户是否在聊天室 Laravel
【发布时间】:2021-09-21 17:25:44
【问题描述】:

我有模型:

ChatRoomMembers
ChatRoom
所以我想检查身份验证用户是否在聊天室中

我的人际关系:

聊天室

    public function chatRoomMembers()
    {
        return $this->hasMany(ChatRoomMember::class);
    }

ChatRoomMembers

    public function chatRoom()
    {
        return $this->belongsTo(ChatRoom::class);
    }

    public function user()
    {
        return $this->belongsTo(User::class);
    }

【问题讨论】:

  • 我和用户没有任何关系

标签: php laravel relationship laravel-8 eloquent-relationship


【解决方案1】:

在用户模型中添加以下关系

public function chatRoomMember(){

   return $this->hasMany(ChatRoomMembers::class);
}

在代码中

auth()->user()->chatRoomMember->count()

auth()->user()->chatRoomMember->exists()

【讨论】:

  • 我尝试了其他关系,public function chatRooms(){ return $this->hasManyThrough( ChatRoom::class, ChatRoomMember::class, 'user_id', 'id', 'id', 'chat_room_id' )->orderBy('created_at', 'DESC'); }
  • 如果它有效,然后发布您的答案并接受您的答案,以便它可以帮助某人
【解决方案2】:

所以我在用户模型中创建了关系:

    public function chatRooms(){
        return $this->hasManyThrough(
           ChatRoom::class,
           ChatRoomMember::class,
           'user_id',
           'id',
           'id',
           'chat_room_id'
        )->orderBy('created_at', 'DESC');
    }

我只得到这个用户的聊天室

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2020-12-12
    • 1970-01-01
    相关资源
    最近更新 更多