有这么一张表
![7b0b916b4f155f1dd2e7fe837f260ca1.png](https://i-blog.csdnimg.cn/blog_migrate/3adfbcfc7d47cb3fff643402b280b409.png)
如果 pid 是 0,表示【这条记录的用户】是第一级用户,相当于创始人,只会去邀请别人。
需求:取出一个用户的上级和上上级
分析:用户和上级是一对一的关系,Laravel 提供了 hasOne 模型关系。
用户模型是 User,关联的模型也是 User。关联的字段就是 id 和 pid。我们可以无脑的在模型关系中设置两个字段的位置,不对的话交换位置就行了。模型关系如下:
// AppUser
public function parent()
{
return $this->hasOne('AppUser', 'id', 'pid');
}
这样我们就能使用 with 很方便地找到一个用户的上级:
$userAndParent = AppUser::with('parent')->find(4);
/**
{
"id": 4,
"pid": 2,
"name": "李四邀请的赵六",
"parent":