Dcat admin 配置多後臺獨立應用記錄

MArtian發表於2021-08-28

相關文件

多應用 (多後臺)《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'],
    ],

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 協議》,轉載必須註明作者和本文連結

相關文章