File "CreateDefaultMenus.php"
Full Path: /var/www/drive/foundation/src/Core/Install/CreateDefaultMenus.php
File size: 1.22 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Common\Core\Install;
use Common\Settings\Setting;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
class CreateDefaultMenus
{
public function execute(): void
{
if (Setting::where('name', 'menus')->exists()) {
return;
}
$menus = json_decode(
Arr::first(
config('common.default-settings'),
fn($value) => $value['name'] === 'menus',
)['value'],
true,
);
foreach ($menus as $menuIndex => $menu) {
if (!isset($menu['id'])) {
$menu[$menuIndex]['id'] = Str::random(6);
}
foreach ($menu['items'] as $itemIndex => $item) {
if (!isset($item['id'])) {
$menus[$menuIndex]['items'][$itemIndex]['id'] = Str::random(
6,
);
}
if (!isset($item['order'])) {
$menus[$menuIndex]['items'][$itemIndex][
'order'
] = $itemIndex;
}
}
}
Setting::create([
'name' => 'menus',
'value' => json_encode($menus),
]);
}
}