SystemNode.php 872 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace app\admin\model;
  3. use app\common\model\TimeModel;
  4. class SystemNode extends TimeModel
  5. {
  6. public static function getNodeTreeList(): array
  7. {
  8. $list = self::select()->toArray();
  9. return self::buildNodeTree($list);
  10. }
  11. protected static function buildNodeTree($list): array
  12. {
  13. $newList = [];
  14. $repeatString = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  15. foreach ($list as $vo) {
  16. if ($vo['type'] == 1) {
  17. $newList[] = $vo;
  18. foreach ($list as $v) {
  19. if ($v['type'] == 2 && str_contains($v['node'], $vo['node'] . '/')) {
  20. $v['node'] = "{$repeatString}├{$repeatString}" . $v['node'];
  21. $newList[] = $v;
  22. }
  23. }
  24. }
  25. }
  26. return $newList;
  27. }
  28. }