如何在3表关系上连接外键

时间:2019-12-04 04:21:56

标签: laravel eloquent

对不起,我不知道如何创建一个好标题。所以 我有3张桌子。 USER SPECIAL_USER EDUCATION_SPECIAL_USER

在USER中,我有

之类的基本数据
  

id,姓名,地址,电子邮件等

在SPECIAL_USER数据中

  

id,user_id,身高,体重

我在Education_SPECIAL_USER中拥有

  

id,special_user_id,name_school,技能等

我在此表上有 LIKE 表。我在根据 USER 上的ID调用 EDUCATION_SPECIAL_USER 时遇到问题。它有问题,因为我的EDUCATION_SPECIAL_USER与USER表没有直接关系。 它是我的控制器,如何解决

  public function PDF_profile(Request $request,$id){
   $users = User::findOrFail($id);
   $special_users= Special_Users::where('user_id',$id)->first();
   $EDUCATION_SPECIAL_USER= EDUCATION_SPECIAL_USER::where('Special_user_id',$id)->get();

    $pdf = PDF::loadView('admin.pdf_profile',
    [
    'EDUCATION_SPECIAL_USER '=>$EDUCATION_SPECIAL_USER ,
    'users' => $users,
    'special_users'=> $special_users,



    ]);
    dd($r_kgb);
     //return $pdf->stream('Profile.pdf')->header('Content-Type','application/pdf'); 

}

该数据没有出,因为这个错误的id,我该如何解决呢?

1 个答案:

答案 0 :(得分:1)

您可以使用“具有多次通过”关系:

// In your model User:
public function educationSpecialUsers()
{
    return $this->hasManyThrough(EducationSpecialUser::class, SpecialUser::class);
}

// then use:
$user = User::findOrFail($id);
$educationSpecialUsers = $user->educationSpecialUsers;

希望有帮助。