['start_at', 'end_at']], $range); if (!empty($range)) { foreach ($range as $field => $rangeField) { if (count($rangeField) === 1) { $search[$field] = [$params[$rangeField[0]]]; unset($params[$rangeField[0]]); } else { $search[$field] = [$params[$rangeField[0]], $params[$rangeField[1]]]; unset($params[$rangeField[0]], $params[$rangeField[1]]); } } } return array_merge($search, $params); } /** * 导入树形数据 * * @time 2020年04月29日 * @param $data * @param $table * @param string $pid * @param string $primaryKey * @return void */ public static function importTreeData($data, $table, $pid = 'parent_id',$primaryKey = 'id') { foreach ($data as $value) { if (isset($value[$primaryKey])) { unset($value[$primaryKey]); } $children = $value['children'] ?? false; if($children) { unset($value['children']); } $id = Db::name($table)->insertGetId($value); if ($children) { foreach ($children as &$v) { $v[$pid] = $id; $v['level'] = !$value[$pid] ? $id : $value['level'] . '-' .$id; } self::importTreeData($children, $table, $pid); } } } /** * 解析 Rule 规则 * * @time 2020年05月06日 * @param $rule * @return array */ public static function parseRule($rule) { [$controller, $action] = explode(Str::contains($rule, '@') ? '@' : '/', $rule); $controller = explode('\\', $controller); $controllerName = strtolower(array_pop($controller)); array_pop($controller); $module = array_pop($controller); return [$module, $controllerName, $action]; } /** * 表前缀 * * @time 2020年05月22日 * @return mixed */ public function tablePrefix() { return \config('database.connections.mysql.prefix'); } }