众议院(身份证,姓名)
人(身份证,姓名)
电话(身份证号码)
想法:房子里有很多人,每个人可能有很多号码。
关系表:
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 :(得分:0)
Phone
与House
之间确实没有任何关系,所以你不想做你正在考虑的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');
}
}
模型往往是单细胞的,因此您可能希望将People
重命名为Person
。