'product_category', 'name' => '商品分类', 'children' => [ ['name' => '家用电器', 'children' => [ ['name' => '电视'], ['name' => '冰箱'], ['name' => '洗衣机'], ]], ['name' => '手机数码', 'children' => [ ['name' => '手机'], ['name' => '手机配件'], ['name' => '摄影摄像'], ]], ['name' => '电脑办公', 'children' => [ ['name' => '电脑整机'], ['name' => '外设产品'], ['name' => '网络产品'], ]] ]], ['key' => 'article_category', 'name' => '文章分类', 'children' => [ ['name' => '后端'], ['name' => '前端'], ['name' => 'Android'], ['name' => 'IOS'], ['name' => '开发工具'], ['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') . '_' . $index); $model = Keyword::create($params); if ($children = data_get($item, 'children')) { $this->createByTree($children, $model); } } } }