Check user if is in chat room Laravel

Viewed 145

I have models:

ChatRoomMembers
ChatRoom
so I want to check if auth user is in chat room

my relationships:

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);
    }
2 Answers

So I created relationship in User Model:

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

and I am getting only this user chat rooms

In user model add below relationship

public function chatRoomMember(){

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

and in code

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

or

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