首页 > 解决方案 > 用户自身关系 hasMany(父/子)返回 null

问题描述

我有带有列的用户模型parent_id,并且关系定义如下:

public function superior()
{
    return $this->belongsTo(self::class, 'superior_id', 'id');
}

public function subordinates()
{
    return $this->hasMany(self::class, 'superior_id', 'id');
}

我有这样的测试数据设置:

user1

    user2

        user5

    user3

user4

(意思是 user2 有parent_id= 1,user5 有parent_id= 2)

当我调用$user2->superior它时(返回 $user1)。但是我称之为$user2->subordinatesreturn null (应该是一个集合 contains user5)。

我试图迭代,但结果没有改变。

请帮助我。

标签: laraveleloquenthas-many

解决方案


我的错。这是因为我设置了 $this->user5->superior_id = $this->user2->id 但没有保留它($this->user5->save())。

在按照@matiaslaurit 的建议进行操作后,我可以找到问题:检查 Model::subordinates()->toSql();Check your DB please and also run the same query it returned


推荐阅读