101 lines
3.4 KiB
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);
|
|
}
|
|
}
|
|
}
|
|
}
|