has($name)) { return; } Admin::extension()->updateManager()->update($name); Admin::extension()->enable($name); Keywords::truncate(); $list = [ ['key' => 'crops-category', 'name' => '农作物产业分类', 'value' => '', 'list' => [ ['key' => 'crops-cate-nongye', 'name' => '农业', 'type_key' => 'crops-category', 'value' => ''], ['key' => 'crops-cate-yuye', 'name' => '渔业', 'type_key' => 'crops-category', 'value' => ''], ['key' => 'crops-cate-xumuye', 'name' => '畜牧业', 'type_key' => 'crops-category', 'value' => ''], ['key' => 'crops-cate-lingye', 'name' => '林业', 'type_key' => 'crops-category', 'value' => ''], ['key' => 'crops-cate-activity', 'name' => '其他', 'type_key' => 'crops-category', 'value' => ''], ]], [ 'key' => 'device-supplier', 'name' => '设备供应商', 'value' => '', 'list' => [ ['key' => 'device-supplier-linkos', 'name' => '慧联无限', 'value' => ''], ['key' => 'device-supplier-biang', 'name' => '比昂', 'value' => ''], ['key' => 'device-supplier-other', 'name' => '其它', 'value' => ''], ], ], [ 'key' => 'device-project', 'name' => '设备项目', 'value' => '', 'list' => [ [ 'key' => 'device-project-cyxdnyyq', 'name' => '成渝现代高效特色农业带合作园区', 'value' => json_encode([ 'username' => '成渝现代高效特色农业带合作园区', 'password' => '888888', ]), ], [ 'key' => 'device-project-nyncj', 'name' => '隆昌市农业农村局', 'value' => json_encode([ 'username' => '隆昌市农业农村局', 'password' => '888888', ]), ], [ 'key' => 'device-project-syqshc', 'name' => '隆昌市石燕桥镇三合村股份经济联合社', 'value' => json_encode([ 'username' => '隆昌市石燕桥镇三合村股份经济联合社', 'password' => '888888', ]), ], ['key' => 'device-project-other', 'name' => '其它', 'value' => ''], ], ] ]; $list[] = value(function () { $list = []; for ($i=1; $i <= 12; $i++) { for ($j=1; $j <= 4; $j++) { $list[] = ['key' => ($i-1)*4+$j, 'name' => "{$i}月第{$j}周", 'value' => null]; } } return ['key' => 'weeks-per-year', 'name' => '每年周数', 'value' => '', 'list' => $list]; }); if ($list) { $this->createKeywords($list); } } private function createKeywords($keywords, $parentType = null) { foreach ($keywords as $item) { if ($parentType) { $type = Keywords::create([ 'name' => $item['name'], 'key' => $item['key'] ?? $parentType->key.($parentType + 1), 'type_key' => $parentType->key, 'level' => ($parentType->level ?? 1) + 1, 'parent_id' => $parentType->id, 'value' => $item['value'], ]); } else { $type = Keywords::create(Arr::except($item, 'list')); } $list = data_get($item, 'list'); if ($list) { $this->createKeywords($list, $type); } } } }