4
0
Fork 0
dcat-admin-goods/database/seeders/GoodsCategorySeeder.php

101 lines
3.4 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Peidikeji\Goods\Models\GoodsCategory;
class GoodsCategorySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::statement('SET FOREIGN_KEY_CHECKS = 0;');
GoodsCategory::truncate();
$categoryList = [
['name' => '男装', 'children' => [
['name' => 'T恤', 'children' => [
['name' => '纯色T恤'],
['name' => '联名T恤'],
['name' => '纯色POLO'],
]],
['name' => '裤装','children' => [
['name' => '直筒牛仔裤'],
['name' => '休闲裤'],
['name' => '卫裤'],
]],
['name' => '衬衫', 'children' => [
['name' => '正装衬衫'],
['name' => '纯色衬衫'],
['name' => '牛仔衬衫'],
]],
]],
['name' => '女装', 'children' => [
['name' => '外套', 'children' => [
['name' => '休闲西装'],
['name' => '牛仔外套'],
['name' => '风衣'],
]],
['name' => '裙装', 'children' => [
['name' => '连衣裙'],
['name' => '衬衫裙'],
['name' => '半身裙'],
]],
['name' => '裤装', 'children' => [
['name' => '牛仔'],
['name' => '工装裤'],
['name' => '休闲裤'],
]],
]],
['name' => '手机', 'children' => [
['name' => '手机', 'children' => [
['name' => '5G手机'],
['name' => '游戏手机'],
['name' => '长续航手机'],
]],
['name' => '运营商', 'children' => [
['name' => '中国移动'],
['name' => '中国联通'],
['name' => '中国电信'],
]],
['name' => '手机配件', 'children' => [
['name' => '充电宝'],
['name' => '数据线'],
['name' => '手机耳机'],
]],
]],
];
foreach ($categoryList as $index => $item) {
$attributes = Arr::except($item, ['children']);
$category = GoodsCategory::create(array_merge([
'parent_id' => 0,
'sort' => $index + 1,
], $attributes));
if ($children = data_get($item, 'children')) {
$this->createCategory($children, $category->id);
}
}
}
protected function createCategory($list, $pid = 0)
{
foreach ($list as $index => $item) {
$attributes = Arr::except($item, ['children']);
$category = GoodsCategory::create(array_merge([
'parent_id' => $pid,
'sort' => $index + 1,
], $attributes));
if ($children = data_get($item, 'children')) {
$this->createCategory($children, $category->id);
}
}
}
}