laravel - 用户自身关系 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->subordinates
return null (应该是一个集合 contains user5
)。
我试图迭代,但结果没有改变。
请帮助我。
解决方案
我的错。这是因为我设置了 $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
推荐阅读
- javascript - 如何使用 mustache js 渲染嵌套数据元素?
- python - 如何在 scipy 稀疏矩阵中确定索引数组的顺序?
- php - Laravel 日期范围过滤器
- r - 是否有一个 R 函数在另一个向量中找到一个向量?
- javascript - loadable-components:无法异步加载组件
- macos - 无法在另一台 MacBook 上运行 QT macOS 应用程序
- html - CSS使div填充2行
- html - 中心分区盒
- single-spa - SSPA:我们如何在每个单水疗应用程序中拥有具有两个不同版本的相同 npm 包
- vb.net - TRY CATCH VB.NET 上的 PUT 请求 JSON 异常