Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

tuyenlaptrinh's avatar

Relationship three tables?

Hello. I have problem with relationship three table.

We have the tables

users
- id
- username

companies
- id
- name

user_company
- user_id
- company_id

permissions
- id
- name

user_company_permission
- user_id
- company_id
- permission_id

The company has been set when user logged in.

Example:
Step 1: demo account logged in
Step 2: demo account chosen Company A
Step 3: Check permission of demo account in Company  A. [Problem]
...........

I need check permission of user in one company.

Please help me. Thank you so much

0 likes
3 replies
tuyenlaptrinh's avatar

Hi Bobby

I just tried logged in.

function permission(){
    $route_name = \Illuminate\Support\Facades\Request::route()->getName();
    $user = \Illuminate\Support\Facades\Auth::user();
    if($user->user_type == 1){
        return true;
    }
    else {
        $route = \ProjectManagement\Permission::where('route',$route_name)->first();
        if($route){
            $permission = \ProjectManagement\UserPermission::where('user_id',$user->id)->where('permission_id',$route->id)->where('company_id',$user->company_id)->first();
            if($permission){
                return true;
            }
            else return false;
        }
        else return false;
    }
}

This is my function

Remember. company_id has not been in users table

Please or to participate in this conversation.