【问题标题】:Displaying a hierarchical tree with Baum in Laravel / Recursive functions in laravel在 Laravel 中显示带有 Baum 的层次结构树/在 laravel 中使用递归函数
【发布时间】:2014-07-12 15:26:03
【问题描述】:

所以我刚刚在 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

那么在 laravel 中解决这个问题的最佳方法是什么?在 php 中,我可以创建一个自身递归的函数,但我不确定如何在我的 laravel 视图中执行此操作。

【问题讨论】:

  • 你最终弄清楚了吗?
  • 恐怕不行。我确信这是可能的,我对 Laravel 和 MVC 平台还很陌生,以至于我不太明白我现在应该如何处理事情的逻辑方面。

标签: recursion laravel laravel-4 tree hierarchy


【解决方案1】:

您可以使用这里描述的方法: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>";

}

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多