2014-02-08 71 views
0

(ID,姓名)三個相關的表 - 如何處理

人民(ID,姓名)

電話(ID,數量)

理念:房子有很多人,每個人可能有很多數字。

關係表:

house_has_people_has_phone(ID,house_id,people_id,phone_id)

所以,我想建立這樣的:

Array 
(
    [0] => Array 
    (
    [id] 1 
    [name] House 01 
    [people] => Array 
     (
     [0] => Array 
     (
      [id] 1 
      [name] John 
      [phone] => Array 
      (
       [0] => Array 
       (
       [id] 1 
       [number] 555 
       ) 
       [1] => Array 
       (
       [id] 2 
       [number] 777 
       ) 
      ) 
     ) 
     [1] => Array 
      (
      [id] 2 
      [name] Mick 
      [phone] => Array 
      (
       [0] => Array 
       (
        [id] 3 
        [number] 999 
       ) 
      ) 
     ) 
     ) 
    ) 
) 

最後,我怎麼能將它與Laravel相關聯?

回答

0

確實沒有PhoneHouse的關係,因此您不想執行您正在考慮的3級關係。別擔心,Laravel會讓你在需要時檢索你想要的數據結構(見下面),但最終的數據結果並不是你應該如何建模的。

你需要考慮的反向關係太...我假設一個People只能屬於一個House和同樣是Phone只能屬於一個People

在Laravel /models

House.php

class House extends Eloquent { 
    public function people() { 
     return $this->hasMany('People'); 
    } 
} 

People.php

class People extends Eloquent { 
    public function house() { 
     return $this->belongsTo('House'); 
    } 

    public function phone { 
     return $this->hasMany('Phone'); 
    } 
} 

Phone.php

class Phone extends Eloquent { 
    public function people() { 
     return $this->belongsTo('People'); 
    } 
} 

模型往往是singlular所以你可能想要將People重命名爲Person

相關問題