Adil
Adil

Reputation: 27

many to many relation returns null in laravel

I have a many to many relation between the tables user and clinic and the third table is user_clinics. All three tables returns their values perfectly individually, but when i call App\User::find(1)->clinics or its inverse it returns null. Moreover, user_clinic has user_id and clinic_id and also previlage_id as a foreign key.

public function users() {
    return $this->belongsToMany(User::class,'user_clinics','user_id','clinic_id');
}

public function clinics() {
   return $this->belongsToMany(Clinic::class,'user_clinics','clinic_id','user_id');
}

public function adminDashboard(Request $request) {
    $clinic = new Clinic();
    $User_clinic = new User_clinic();
    $user = new User();

    $clinic->name = $request->name;
    $clinic->address = $request->address;

    if($request->hasFile('logo')) {
        $fileName = $request->logo->getClientOriginalName();
        $request->logo->storeAs('public/logos',$fileName);
        $clinic->logo = $request->logo;
    }

    $clinic->save();

    $User_clinic->user_id = auth::user()->id;
    $test=$User_clinic->clinic_id = $clinic->id;

    //now hardcoded previlage_id but deal with it in future...
    $User_clinic->previlage_id = 1;
    $User_clinic->save();

    $test= $clinic::find(2)->users;

    dd($test);

     //return view("admin.dashboard.dashboardFirstPage");
} 

Upvotes: 1

Views: 1821

Answers (1)

Surya Neupane
Surya Neupane

Reputation: 984

Your relationship is not quiet right:

public function users() {
 return $this->belongsToMany(User::class,'user_clinics','user_id','clinic_id');
}

public function clinics() {
 return $this->belongsToMany(Clinic::class,'user_clinics','clinic_id','user_id');
}

It should be like below:

In User model:

public function clinics() {
 return $this->belongsToMany(Clinic::class,'user_clinics','user_id','clinic_id');
}

In Clinic model:

public function users() {
 return $this->belongsToMany(User::class,'user_clinics','clinic_id','user_id');
}

Upvotes: 2

Related Questions