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视图中这样做.
您可以使用此处描述的方法: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)