get('admin.config', function () { $adminConfig = config('admin'); $adminConfig['lang'] = config('app.locale'); return $adminConfig; }); // 如果 $key 是数组,表示我们需要批量设置配置项 if (is_array($key)) { foreach ($key as $k => $v) { Arr::set($config, $k, $v); // 在配置数组中设置每个键值对 } $session->put('admin.config', $config); // 将更新后的配置保存到 session 中 return; } // 如果没有传递具体的 key,返回整个配置数组 if (is_null($key)) { return $config; } // 获取指定的配置项,如果不存在则返回默认值 $value return Arr::get($config, $key, $value); } } //通过parent_id构建树形结构 if (!function_exists('buildTree')) { function buildTree(array $elements, $parentId = 0) { $branch = []; foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; } } return $branch; } } // 展平树形结构 if (!function_exists('flattenTree')) { function flattenTree(array $tree, array &$result = [], $level = 0) { foreach ($tree as $node) { // 复制节点数据,但不包括子节点,并添加 level 字段 $flattenedNode = array_diff_key($node, ['children' => null]); $flattenedNode['level'] = $level; $result[] = $flattenedNode; // 如果有子节点,递归处理子节点,并将 level 增加 1 if (isset($node['children']) && is_array($node['children'])) { flattenTree($node['children'], $result, $level + 1); } } return $result; } }