'score_cate', 'name' => '考核指标', 'children' => [ ['key' => 'score_cate_1', 'name' => '政治忠诚'], ['key' => 'score_cate_2', 'name' => '政治定力'], ['key' => 'score_cate_3', 'name' => '政治担当'], ['key' => 'score_cate_4', 'name' => '政治能力'], ['key' => 'score_cate_5', 'name' => '政治自律'], ]] ]; $this->createByTree($list); } protected function createByTree($list, $parent = null) { foreach ($list as $index => $item) { $params = Arr::except($item, ['children']); $params['sort'] = $index + 1; $params['parent_id'] = $parent ? $parent->id : 0; $params['key'] = data_get($item, 'key', data_get($parent, 'key') . '_' . $params['sort']); $model = Keyword::create($params); if ($children = data_get($item, 'children')) { $this->createByTree($children, $model); } } } }