Dcat admin 配置多后台独立应用记录

相关文档

多应用 (多后台)《Dcat Admin 中文文档》

1. 创建新应用

php artisan admin:app NewAdmin // 必须是大驼峰命名

2. 配置多后台

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

return [
    ...

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

3. 更改路由前缀

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

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

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

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

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

        'middleware' => ['web', 'admin'],
        // SESSION 隔离
        'enable_session_middleware' => true,
    ],

4. 配置用户授权

我们要做的是完全独立的管理后台,还需要更改配置文件 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,
            ],
        ],

        ...

    ],

5. 配置数据库表

独立应用的管理账号和权限和主应用是分离的,需要重新创建 RBAC
Dcat admin 配置多后台独立应用记录
先这些数据表挨个复制一遍,改成你自己的表前缀,再打开项目代码的 vendor/dcat/laravel-admin/src/Models/ 文件夹复制到 App\NewAdmin 文件夹,然后再去修改 config\new-admin.php 文件 database 部分

...
'database' => [ 
  // Database connection for following tables.
  'connection' => '',

  // User tables and model.
  'users_table' => 'new_admin_user',
  'users_model' => \App\NewAdmin\Models\Administrator::class,

  // Role table and model.
  'roles_table' => 'new_admin_roles',
  'roles_model' => \App\NewAdmin\Models\Role::class,

  // Permission table and model.
  'permissions_table' => 'new_admin_permissions',
  'permissions_model' => \App\NewAdmin\Models\Permission::class,

  // Menu table and model.
  'menu_table' => 'new_admin_menu',
  'menu_model' => \App\NewAdmin\Models\Menu::class,

  // Pivot table for table above.
  'role_users_table' => 'new_admin_role_users',
  'role_permissions_table' => 'new_admin_role_permissions',
  'role_menu_table' => 'new_admin_role_menu',
  'permission_menu_table' => 'new_admin_permission_menu',
  'settings_table' => 'new_admin_settings',
  'extensions_table' => 'new_admin_extensions',
  'extension_histories_table' => 'new_admin_extension_histories',
],

重新修改一下这部分的 模型,然后再替换 App\NewAdmin\Models 文件夹

// 将 config 相关的替换成新的应用配置
config('admin.*
// 替换成
config('new-admin.*

到这就差不多了,如果有覆写视图的需求,还需要在 App\NewAdmin\bootstrap.php 文件中加入

app('view')->prependNamespace('admin', resource_path('{{自定义项目视图}}'));

基本流程跟文档差不多,这里记录一下完整的流程。

本作品采用《CC 协议》,转载必须注明作者和本文链接
悲观者永远正确,乐观者永远前行。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
janus

:kissing_heart:

2年前 评论

为啥我创建完之后,原来的后台不好使了,输入原来的后台路径就直接跳转到新的后台路径了呢

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!