2015-01-17 86 views
1

我已經給了現有數據庫包含兩個表:Laravel侃侃而談 「屬於關聯」/ 「hasOne」

customers (address_id) 
addresses 

此外,在客戶每個客戶都有一個AddressID。通常,我會假設每個地址都有一個客戶的ID,但這裏的客戶有地址ID。

現在我正在尋找一個模型函數從客戶獲取地址在刀片模板使用類似{{ $customer->address }}

例如Customer.php

public function address() { 
    return $this->belongsTo('Address', 'CustomerID', 'AddressID'); 
} 

問:如何獲取客戶的相關地址?

//編輯:它是一個現有的表,包含我目前無法更新的數據。

我工作大約是:

$customer->address = Address::find($customer->AddressID); 
+0

你面對什麼樣的問題呢? –

回答

3

belongsTo調用中的參數有點不對。試試這個:

$this->belongsTo('Address', 'AddressID'); 
           ^
          foreign key 

您可以只要$primaryKey財產上的Address模式設置省略第三個參數(或它的傳統id

+0

真棒,這個小提示做到了! <3 – wiesson

1

在用戶模型像創建函數這個

public function address() { 
    return $this->hasOne('Address', 'CustomerID', 'AddressID'); 
} 

Address的地址模型CustomerID的名字是customers(我推薦使用只是id)主鍵AddressID參考Address在客戶表中。所以,現在您可以使用{{ $customer->address }}這將檢索客戶的地址。

+1

是的,我想過這樣的事情。但地址沒有客戶ID。 – wiesson

+0

我更新了帖子。 –