Recursion 用Laravel中的Baum显示层次树/Laravel中的递归函数

Recursion 用Laravel中的Baum显示层次树/Laravel中的递归函数,recursion,laravel,laravel-4,tree,hierarchy,Recursion,Laravel,Laravel 4,Tree,Hierarchy,所以我刚刚在Laravel中安装了Baum包,并建立了一个分类树 我已经能够使用getDependentsAndSelf()方法以嵌套的JSON格式显示树,但是我不知道如何使用laravel以一种可用的格式实际显示它 理想情况下,我只想以缩进列表格式将它们输出,但我觉得这可能需要一些递归,我不知道如何在Laravel中实现这一点 以下是我现在的输出: {"14":{"id":14,"parent_id":null,"name":"Root","lft":1,"rgt":6,"depth":0,

所以我刚刚在Laravel中安装了Baum包,并建立了一个分类树

我已经能够使用getDependentsAndSelf()方法以嵌套的JSON格式显示树,但是我不知道如何使用laravel以一种可用的格式实际显示它

理想情况下,我只想以缩进列表格式将它们输出,但我觉得这可能需要一些递归,我不知道如何在Laravel中实现这一点

以下是我现在的输出:

 {"14":{"id":14,"parent_id":null,"name":"Root","lft":1,"rgt":6,"depth":0,"children":[{"id":15,"parent_id":14,"name":"Child 1","lft":2,"rgt":5,"depth":1,"children":[{"id":16,"parent_id":15,"name":"Child 2","lft":3,"rgt":4,"depth":2,"children":[]}]}]}}
本质上,它只是一个格式树

- Root
    - Child 1
        - Child 2

那么,在拉雷维尔,最好的方式是什么呢?在php中,我本可以创建一个自身递归的函数,但在我的laravel视图中,我不确定如何做到这一点。

您可以使用下面描述的方法:


你最终明白了吗?恐怕没有。我确信这是可能的,我只是对Laravel和MVC平台太陌生了,以至于我现在不太明白我应该如何处理事情的逻辑方面。
<?php

$roots = Category::roots()->get();

echo "<ul>";
foreach($roots as $root) renderNode($root);
echo "</ul>";

// *Very simple* recursive rendering function
function renderNode($node) {
  echo "<li>";
  echo "<b>{$node->name}</b>";

  if ( $node->children()->count() > 0 ) {
    echo "<ul>";
    foreach($node->children as $child) renderNode($child);
    echo "</ul>";
  }

  echo "</li>";

}