我有一张User
表与自我关系。
该表的字段如下:
id
parent_id
(FK到User
)name
一个用户可以拥有一个父级,这个父级可以拥有一个父级,直到无限级(虽然我可能会达到3-4级,应用程序设置没有限制)。
如何从没有孩子的用户(树用户的底部)中获取除兄弟姐妹之外的所有家谱树。
例如:
我有user1
,他的父母parent1
有一个grandparent1
。如果grandparent1
有其他孩子(如所谓的parent2
),我不想取这个。只需user1
- > parent1
- > grandparent1
。有没有什么方法可以循环关联,直到它找不到?
EDIT1:我真的想使用QueryBuilder。使foreach调用parent()方法直到它返回null可能不是最佳解决方案,因为优化
答案 0 :(得分:0)
试试这个:
class User extends Model {
public function parent()
{
return $this->belongsTo('App\User', 'parent_id');
}
public function children()
{
return $this->hasMany('App\User', 'parent_id');
}
}