order-food-admin/database/seeders/AdminMenusSeeder.php

71 lines
2.5 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use DB;
use Dcat\Admin\Models\Menu as AdminMenu;
class AdminMenusSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$menus = [
['title' => 'Index', 'icon' => 'feather icon-bar-chart-2', 'url' => '/', 'order'=>1],
['title' => '商品管理', 'icon' => 'fa-shopping-cart', 'url' => '', 'order'=>2,
'children' => [
['title' => '商品分类', 'icon' => '', 'url' => 'goods_categories', 'order'=>3],
['title' => '商品类型', 'icon' => '', 'url' => 'goods_types', 'order'=>4],
['title' => '商品列表', 'icon' => '', 'url' => 'goods', 'order'=>5]
],
],
['title' => '订单管理', 'icon' => 'fa-file-text', 'url' => '', 'order'=>3,
'children' => [
['title' => '快速下单', 'icon' => '', 'url' => 'orders/create', 'order'=>1],
['title' => '订单列表', 'icon' => '', 'url' => 'orders?pay_status=1', 'order'=>2],
],
],
['title' => 'Admin', 'icon' => 'feather icon-settings', 'url' => '', 'order'=>4,
'children' => [
['title' => 'Users', 'icon' => '', 'url' => 'auth/users', 'order'=>1],
['title' => 'Roles', 'icon' => '', 'url' => 'auth/roles', 'order'=>2],
['title' => 'Permission', 'icon' => '', 'url' => 'auth/permissions', 'order'=>3],
['title' => 'Menu', 'icon' => '', 'url' => 'auth/menu', 'order'=>4],
],
],
];
DB::table('admin_menu')->truncate();
try {
DB::begintransaction();
$this->createMenus($menus);
DB::commit();
} catch (Throwable $th) {
DB::rollBack();
report($th);
}
}
public function createMenus(array $menus, $pid = 0)
{
foreach ($menus as $menu) {
$mm = AdminMenu::create([
'title' => $menu['title'],
'icon' => $menu['icon'],
'uri' => $menu['url'],
'parent_id' => $pid,
'order' => $menu['order'] ?? 0,
]);
if (isset($menu['children'])) {
$this->createMenus($menu['children'], $mm->id);
}
}
}
}