Laravel:获取嵌套列表eloquent中的最后一个parent递归

Laravel: get the last parent in nested list eloquent recursive

我需要在 laravel 的嵌套树中获取最新的 parent :

示例:

我的数据库中 table 的架构:

我模型中的关系:

public function parentUnit() {
    return $this->belongsTo('Unit', 'unit_id', 'id');
}

public function allParentUnit() {
    return $this->parentUnit()->with('allParentUnit');
}

问题:

如何获取上图中最新的parent:

最新的parent G是A

最后一个 parent F是B

我会在模型中添加一个方法来查找第一个父项。

public function getLatestParent()
{
    if ($this->parentUnit)
        return $this->parentUnit->getLatestParent();

    return $this;
}