65 lines
2.0 KiB
PHP
65 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Keyword;
|
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class KeywordSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
Keyword::truncate();
|
|
|
|
$list = [
|
|
['key' => '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);
|
|
}
|
|
}
|
|
}
|
|
}
|