2015-06-01 29 views
0

我是Laravel的新手,我希望得到一些查詢幫助。這是我的情況。我有4個表:(Laravel/Eloquent)如何加入4個表格以做出1個查詢

  • 用戶(ID,電子郵件,密碼......)
  • user_profile(ID,名字,姓氏,........,USER_ID)
  • 公司(ID,姓名,......)
  • 政策(ID,policy_num,EXP_DATE,.........,USER_ID,COM​​PANY_ID)

表用戶有5個用戶每個用戶有10個策略。表公司有3家公司。

$user_data=User::select('*') 
       ->with('profile','policies') 
       ->where('id', '=', $userId) 
       ->first(); 

此代碼工作不錯,檢索與,你可以在此圖像中看到該用戶的所有用戶和user_profile領域和所有的政策(10),我可以顯示用戶的詳細資料主頁上的產品。

Click here to view the image

我想,而不是出現在策略表中的company_id出現的公司從公司表的名稱。 任何幫助表示讚賞。

+0

建立的模型之間的關係。 – ceejayoz

+0

然後,您可以使用關係來執行類似'$ user-> company-> name'的操作。 – ceejayoz

+0

感謝您的幫助,我必須在查詢中添加公司表格,如下所示:$ user_data = User :: select('*') - > with('profile','policies','company') - > where('id','=',$ userId) - > first();但是,當我這樣做,我得到這個錯誤:調用未定義的方法Illuminate \ Database \ Query \ Builder :: company() – Carlos

回答

0

謝謝你的回答ceejayoz,我已經做到了。

用戶

public function profile() 
    { 
     return $this->hasOne('UserProfile'); 
    } 

public function policies() 
    { 
     return $this->hasMany('Policy'); 
    } 

政策

public function company() 
    { 
     return $this->hasOne('Company'); 
    }