T-DOC
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • 入门

    • 简介
    • 安装
    • 1.x升级指南
    • 版本升级
    • 快速开始
    • 开发前必读
    • 主题与颜色
    • 静态资源
    • 视图与自定义页面
    • 多应用 (多后台)
    • JS组件
    • 常见问题
    • Laravel Octane
  • 数据表格

    • 基本使用
    • 列的使用和扩展
    • 列的显示和扩展
    • 行的使用和扩展
    • 工具栏
    • 树状表格
    • 组合表头
    • 数据来源以及查询条件
    • 关联关系
    • 查询过滤
    • 列过滤器
    • 快捷搜索
    • 规格筛选器
    • 数据导出
    • 快捷创建
    • 行内编辑
    • 事件
    • 字段翻译
    • 数据软删除
    • 头部和脚部
    • 异步渲染
  • 数据表单

    • 基本使用
    • 图片/文件上传
    • 字段的使用
    • 字段扩展
    • 数据源
    • 表单弹窗
    • 关联关系
    • JSON表单
    • 分步表单
    • 表单验证
    • 工具表单
    • 事件以及表单响应
    • 初始化
    • 表单布局
    • 字段翻译
    • 字段动态显示
  • 数据详情

    • 基本使用
    • 字段显示
    • 关联关系
    • 字段显示扩展
    • 初始化
    • 字段翻译
  • 模型树

    • 基本使用
  • 数据仓库

    • 基本使用
  • 动作

    • 基本使用
    • 数据表格
    • 数据表单
    • 数据详情
    • 模型树
  • 多语言

    • 基本使用
  • 开发扩展

    • 扩展基本使用
    • 开发扩展
  • 页面组件

    • 异步加载
    • 图表
    • 数据统计卡片
    • 模态窗 (Modal)
    • 工具表单
    • 下拉菜单
    • 单/复选框
    • 选项卡
    • 警告框
    • 提示窗
    • Markdown
    • 卡片
  • 区块 (section)

    • 区块基本使用
  • 动作以及表单响应

    • 动作以及表单响应
  • 权限控制

    • 权限控制
  • 菜单

    • 菜单基本使用
  • 帮助函数

    • 帮助函数
  • 开发工具

    • 基本使用
  • 自定义登陆认证

    • 自定义登录
  • 自定义头部导航

    • 自定义头部导航条
  • 更新日志

    • BETA版本更新日志
    • 更新日志

多应用 (多后台)

默认安装后使用的是单应用模式,如果你想在同一个laravel项目中使用多应用模式,那么可以采用多后台模式,最终项目中的目录结构大概如下

app
 ├──Admin
 │   ├── Controllers
 │   │   ├── ExampleController.php
 │   │   └── HomeController.php
 │   ├── Metrics
 │   │   └── ...
 │   ├── bootstrap.php
 │   └── routes.php
 │
 ├──Admin2
 │    └── ...
 │   
 │──Admin3
 │    └── ...
 ...

生成新应用

运行命令,此命令只接受一个参数:应用名称,注意这里的应用名称请一定要使用大驼峰风格命名

php artisan admin:app NewAdmin

运行成功后你的项目中会新增一个新的应用目录app/NewAdmin,以及新的配置文件config/new-admin.php

app
 └──Admin
    ├── Controllers
    │   ├── ExampleController.php
    │   └── HomeController.php
    ├── Metrics
    │   └── ...
    ├── bootstrap.php
    └── routes.php
config
 └──new-admin.php

启用

新应用生成完之后,就可以开始启用这个新应用了,打开配置文件config/admin.php,加入以下代码

return [
    ...

    'multi_app' => [
        // 与新应用的配置文件名称一致
        // 设置为true启用,false则是停用
        'new-admin' => true,
    ],

];

然后就可以打开浏览器访问这个新应用了http://localhost:8000/new-admin。

更改路由前缀

目前只能通过路由前缀区分不同应用,如果你想要更改应用的前缀,可以打开配置文件new-admin.php找到route.prefix参数进行更改即可

更改菜单

如果你想要在新应用中展示不同的菜单,可以参考以下方法

1.首先需要创建新的菜单表以及其关联表

CREATE TABLE `new_admin_menu` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) NOT NULL DEFAULT '0',
  `order` int(11) NOT NULL DEFAULT '0',
  `title` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `icon` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `uri` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `new_admin_permission_menu` (
  `permission_id` int(11) NOT NULL,
  `menu_id` int(11) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  UNIQUE KEY `admin_permission_menu_permission_id_menu_id_index` (`permission_id`,`menu_id`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `new_admin_role_permissions` (
  `role_id` int(11) NOT NULL,
  `permission_id` int(11) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  UNIQUE KEY `admin_role_permissions_role_id_permission_id_index` (`role_id`,`permission_id`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2.创建新的菜单模型

<?php

namespace App\Models;

use Dcat\Admin\Models\Menu;

class NewMenu extends Menu
{
    protected $table = 'new_admin_menu';
}

3.打开新应用的配置文件config/new-admin.php,然后修改以下参数

return [
    ...

    'database' => [

      ...

      // 写入新的模型和菜单表
      'menu_table' => 'new_admin_menu',
      'menu_model' => App\Models\NewMenu::class,

      ...

      // 新的中间表
      'role_menu_table' => 'new_admin_role_menu',
      'permission_menu_table' => 'new_admin_permission_menu',
    ],
];

这样新的应用就可以使用独立的菜单功能了

更改用户和权限

自定义用户和权限可以参考以上更改菜单的方式。另外如果是自定义用户的话,还需要更改配置文件config/new-admin.php中的以下参数

   ...

   'auth' => [
        ...

         'guard' => 'new-admin', // 必须是一个新的名字

        'guards' => [
            'new-admin' => [
                'driver'   => 'session',
                'provider' => 'new-admin', // 必须是一个新的名字
            ],
        ],

        'providers' => [
            'new-admin' => [ // 必须是一个新的名字
                'driver' => 'eloquent',
                // 这里换成新用户表的模型
                'model'  => App\Models\NewAdministrator::class,
            ],
        ],

        ...

    ],

使用不同域名区分应用

默认是通过路由前缀区分应用的,如果想要使用域名区分应用,只需要更改如下配置即可

    'route' => [
        'domain' => 'dev.dcat.com', // 配置你的域名

        'prefix' => '', // 路由前缀建议设置为空

        'namespace' => 'App\\Admin\\Controllers',

        'middleware' => ['web', 'admin'],
    ],
Last Updated:
Contributors: Hans
Prev
视图与自定义页面
Next
JS组件