98 lines
3.3 KiB
PHP
98 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\ArticleCategory;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class ArticleSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$categoryList = [
|
|
['name' => '家用电器', '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);
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|