[top-think/think]V5.0.13 在无限分级表结构中,在动态获取父级数据时,不能一直往父级查询

2023-12-15 728 views
0

A表结构及数据为: id title pid 1 1级 0 2 2级 1 3 3级 2 A模型中的父级关联方法为

public function father()
{
        return $this->belongsTo('A','pid');
}

数据查询例子:

$c=A::get(3);
$father=$c->father;
$grandfather=$father->father;

上面例子中,理论上grandfather应该为ID为1的1级数据,但是,实际上,得到的数据为ID为3的3级数据 如果是关联预载入就没有问题,但是,这类型的表结构一般都为无限分级,不能应用预载入的

回答

8

我修正了下

2

定义关联的时候使用selfRelation方法

5

@liu21st 定义关联的时候使用selfRelation方法 请问这个是什么意思,可以举个列子吗?

1

更新到最新,然后关联定义改为 public function father() { return $this->belongsTo('A','pid')->selfRelation(); }

6

@liu21st 3天前我已经将版本升级到V5.0.14版本了,现在用composer.bat update topthink/framework 无法更新到最新的代码,请问应该怎么操作可以做到更新到V5.0.*的最新版本呢?

9

更改composer.json 使用dev-master 然后重新update