Laravel检索董事会的所有父母

问题描述 投票:0回答:1

我有一个名为“公告”的委员会,该委员会在一个名为“重要信息”的委员会中,而该委员会在“总部”中。这是它的视觉表示。

总部(没有父母的主板)[id = 1, parent_id = null]

↳重要信息(“总部”的第一个子委员会)[id = 2, parent_id = 1]

↳公告(“重要信息”的第一个子面板[id = 3, parent_id = 2]

我的目标是获得Laravel模型中的所有“公告”父板。

我已经构造了一个可以得到一个父板的函数。

public function parent()
{
    return $this->where('id', $this->parent_id)->first();
}

如果您要在“公告”面板上使用此功能,它将返回“重要信息”面板的结果,因为它是“公告”的父元素。

所以,假设我要创建一个名为listAllParents()的函数>

public function listAllParents()
{
    // code here
}

此函数将返回与指定板关联的所有父级的结果。因此,如果我要在“公告”上使用此功能,我希望与之关联的所有父母都可以返回。

这是一个小代码示例:

$board = Board::where('name', 'Announcements')->first();
$getAllParents = $board->listAllParents()->get();

return $getAllParents;

并且应该

返回的是“公告”母板的列表,它们是:“重要信息”和“总部”。什么样的代码应该进入listAllParents()函数才能实现这一点?

如果您需要更好的解释,请告诉我。我非常乐意提供帮助。

非常感谢您的帮助。

我有一个名为“公告”的委员会,该委员会在一个名为“重要信息”的委员会中,而该委员会在“总部”中。这是它的视觉表示。总部(主板...

php laravel parent-child laravel-5.7
1个回答
2
投票

鉴于您当前的结构,最好的选择是遍历层次结构中的每个Board,直到到达Board,其中parent_id === null。例如:

© www.soinside.com 2019 - 2024. All rights reserved.