lcly-data-admin/database/seeders/KeywordsTableSeeder.php

54 lines
1.5 KiB
PHP

<?php
namespace Database\Seeders;
use Dcat\Admin\Admin;
use Illuminate\Database\Seeder;
use Illuminate\Support\Arr;
use Peidikeji\Keywords\Models\Keywords;
class KeywordsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$name = 'peidikeji.dcat-admin-extension-keywords';
$extension = Admin::extension();
if (! $extension->has($name)) {
return;
}
Admin::extension()->updateManager()->update($name);
Admin::extension()->enable($name);
Keywords::truncate();
$list = [
];
foreach ($list as $item) {
$type = Keywords::create(Arr::except($item, 'list'));
$list = data_get($item, 'list');
if ($list) {
$keywords = [];
foreach ($list as $index => $name) {
$template = [
'key' => $type->key.($index + 1),
'type_key' => $type->key,
'level' => $type->level + 1,
];
if (is_array($name)) {
$template = array_merge($template, $name);
} else {
$template['name'] = $name;
}
array_push($keywords, $template);
}
$type->children()->createMany($keywords);
}
}
}
}