'家用电器', 'children' => [ ['name' => '电视', 'children' => [ ['name' => '4K高清'], ['name' => '智慧屏'], ['name' => 'OLED电视'], ]], ['name' => '冰箱', 'children' => [ ['name' => '对开门'], ['name' => '冰柜'], ['name' => '双门'], ]], ['name' => '空调', 'children' => [ ['name' => '空调挂机'], ['name' => '空调柜机'], ['name' => '中央空调'], ]], ]], ['name' => '数码手机', 'children' => [ ['name' => '手机通讯', 'children' => [ ['name' => '游戏手机'], ['name' => '5G手机'], ['name' => '全面屏手机'], ]], ['name' => '手机配件', 'children' => [ ['name' => '手机壳'], ['name' => '手机膜'], ['name' => '数据线'], ]], ['name' => '智能设备', 'children' => [ ['name' => '智能手表'], ['name' => '监控摄像'], ['name' => '智能家居'], ]], ]], ['name' => '电脑办公', 'children' => [ ['name' => '电脑整机', 'children' => [ ['name' => '台式机'], ['name' => '笔记本'], ['name' => '一体机'], ]], ['name' => '电脑配件', 'children' => [ ['name' => 'CPU'], ['name' => '显卡'], ['name' => '显示器'], ]], ['name' => '外设产品', 'children' => [ ['name' => '鼠标'], ['name' => '键盘'], ['name' => 'U盘'], ]], ]], ]; ArticleCategory::truncate(); $this->createCategory($categoryList, 0); Article::truncate(); (new ArticleFactory)->count(100)->create(); } protected function createCategory($list, $pid = 0) { $sort = count($list); foreach($list as $index => $item) { $params = Arr::except($item, ['children']); $parent = null; if ($pid) { $parent = ArticleCategory::find($pid); } $model = ArticleCategory::create(array_merge([ 'sort' => $sort--, 'parent_id' => $parent ? $parent->id : 0, 'level' => $parent ? $parent->level + 1 : 1, 'path' => ($parent ? $parent->path . $parent->id : '') . '-', ], $params)); $children = data_get($item, 'children'); if ($children && count($children) > 0) { $this->createCategory($children, $model->id); } } } }