兄弟姐妹之間的關係有很多很多的自我關係。因此,對於多對多的自我關係,我們可以在模型中定義兩個函數:Laravel兄弟姐妹之間的親密關係
public function siblings()
{
return $this->belongsToMany('Student', 'student_sibling', 'student_id', 'sibling_id');
}
public function siblingOf()
{
return $this->belongsToMany('Student', 'student_sibling', 'sibling_id', 'student_id');
}
第一個返回誰是學生的兄弟姐妹的學生。兄弟姐妹也是如此。所以,第二個返回學生是兄弟姐妹的學生。
因此,我們可以合併這兩個集合以獲得學生的兄弟姐妹的學生列表。這裏是我在控制器方法中的代碼:
$siblingOf = $student->siblingOf;
$siblings = $student->siblings;
$siblings = $siblings->merge($siblingOf);
但還有更多。兄弟姐妹關係是一種不同於朋友關係的鏈式關係。這意味着,如果X是Y的兄弟,Y是Z的兄弟,那麼Z是X的兄弟。
那麼,如何獲得所有學生兄弟姐妹的收集?
所以它更像是'relative'不'sibling',對不對?你會喜歡多深?請注意,它可以變成類似於「每個學生都是其他人的親戚」的東西。 – 2014-09-16 08:12:10