我有一个名为“公告”的委员会,该委员会在一个名为“重要信息”的委员会中,而该委员会在“总部”中。这是它的视觉表示。
总部(没有父母的主板)[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 }
此函数将返回与指定板关联的所有父级的结果。因此,如果我要在“公告”上使用此功能,我希望与之关联的所有父母都可以返回。
这是一个小代码示例:
返回的是“公告”母板的列表,它们是:“重要信息”和“总部”。什么样的代码应该进入listAllParents()函数才能实现这一点?$board = Board::where('name', 'Announcements')->first(); $getAllParents = $board->listAllParents()->get(); return $getAllParents;
并且应该
如果您需要更好的解释,请告诉我。我非常乐意提供帮助。
非常感谢您的帮助。
我有一个名为“公告”的委员会,该委员会在一个名为“重要信息”的委员会中,而该委员会在“总部”中。这是它的视觉表示。总部(主板...
鉴于您当前的结构,最好的选择是遍历层次结构中的每个Board
,直到到达Board
,其中parent_id === null
。例如: