在Laravel中使用Baum显示分层树/在laravel中显示递归函数

Kur*_*igu 3 tree recursion hierarchy laravel laravel-4

所以我刚刚在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":[]}]}]}}
Run Code Online (Sandbox Code Playgroud)

从本质上讲,它只是格式的一棵树

- Root
    - Child 1
        - Child 2
Run Code Online (Sandbox Code Playgroud)

那么在laravel中最好的方法是什么?在php中我可以创建一个递归自身的函数,但我不知道如何在我的laravel视图中这样做.

see*_*eek 5

您可以使用此处描述的方法:https://gist.github.com/etrepat/6920301

<?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>";

}
Run Code Online (Sandbox Code Playgroud)