laravel-admin 1.5 升级迁移全指南表结构、路由与配置变更对照【免费下载链接】laravel-adminBuild a full-featured administrative interface in ten minutes项目地址: https://gitcode.com/gh_mirrors/la/laravel-adminlaravel-admin 1.5 对内置表结构、路由文件与配置文件进行了整体重构并移除了内置图表组件。本文以官方升级注意事项为主线逐项对照 数据库迁移文件、路由模板 与 配置文件 的源码实现为你梳理一份可执行、可验证的升级迁移清单。读完本文你将掌握 1.5 版内置 9 张表的完整结构、新版路由与配置的组织方式以及图表能力被移除后的自定义替代方案。为什么 1.5 建议重装再迁移升级文档给出的核心建议是由于 laravel-admin 1.5 的内置表结构发生修改推荐重新安装 laravel 5.5 与 laravel-admin 1.5再把业务代码迁移过来而不是在旧版本基础上原地升级。从 composer.json 可以印证 1.5 的运行环境基线php: 7.0.0laravel/framework: 5.5也就是说如果你仍在使用 laravel 5.4 或更低版本必须先升级 laravel 框架本身这本身就是一个涉及面很广的工程。同时 1.5 的数据库表、路由注册方式和配置键都发生了结构性变化新旧数据表之间并不保证平滑兼容因此官方给出的路径是新环境全新安装 → 验证基础功能 → 再迁移业务代码与数据。全新安装的流程可参考 docs/en/installation.mdcomposer require encore/laravel-admin 1.5.* php artisan vendor:publish --providerEncore\Admin\AdminServiceProvider php artisan admin:install其中admin:install命令见 src/Console/InstallCommand.php会依次执行migrate建表并在用户表为空时调用db:seed写入初始管理员数据。安装完成后运行php artisan serve访问http://localhost/admin/使用默认账号admin/admin即可登录验证。迁移要点一内置表结构变更1.5 对内置表结构做了修改迁移时必须以新版迁移文件为准。新版建表逻辑全部集中在 database/migrations/2016_01_04_173148_create_admin_tables.php并且所有表名都通过config(admin.database.*)动态读取也就是说表名本身可以在 config/admin.php 中自定义升级时应先确认自己的表名配置与迁移文件一致。迁移文件up()方法一共创建 9 张表各表核心字段如下表默认名用途关键字段admin_users管理员用户id、username(190, unique)、password(60)、name、avatar(nullable)、remember_token(100, nullable)、时间戳admin_roles角色id、name(50, unique)、slug(50, unique)、时间戳admin_permissions权限id、name(50, unique)、slug(50, unique)、http_method(nullable)、http_path(text, nullable)、时间戳admin_menu后台菜单id、parent_id(默认 0)、order(默认 0)、title(50)、icon(50)、uri(nullable)、permission(nullable)、时间戳admin_role_users用户-角色关联role_id、user_id、联合索引[role_id, user_id]、时间戳admin_role_permissions角色-权限关联role_id、permission_id、联合索引、时间戳admin_user_permissions用户-权限关联user_id、permission_id、联合索引、时间戳admin_role_menu角色-菜单关联role_id、menu_id、联合索引、时间戳admin_operation_log操作日志id、user_id(索引)、path、method(10)、ip、input(text)、时间戳与旧版对比迁移时尤其要注意以下几点权限模型的变化admin_permissions表通过http_method如GET、GET,PUT与http_path支持换行分隔多个路径text 类型来定义路由级权限这是 1.5 权限校验check_route_permission的数据基础菜单表新增permission字段用于将菜单项绑定到权限对应配置项menu_bind_permission4 张中间表pivot table统一带有联合索引down()方法会按依赖顺序依次dropIfExists这 9 张表。down()方法的删除顺序也值得迁移参考先删用户、角色、权限、菜单主表再删 4 张中间表与操作日志表避免外键或索引残留。初始数据的对应关系建表之后的数据由 src/Auth/Database/AdminTablesSeeder.php 负责填充迁移时这些种子数据的结构同样发生了变化创建默认用户admin密码admin、角色Administratorslug 为administrator预置 5 条权限*全部权限、dashboard、auth.login、auth.setting、auth.management预置 7 条菜单Dashboard 与 Admin 管理分组下的 Users / Roles / Permission / Menu / Operation log建立角色-权限、角色-菜单的初始关联。如果你在旧版中已有大量 RBAC 数据迁移时建议按新表结构 → 重新填充权限与菜单 → 再导入业务侧自定义数据的顺序执行避免字段缺失导致的数据错位。迁移要点二路由文件结构变更1.5 将后台路由的组织方式改为系统内置路由 用户自定义路由分组两层结构新版模板位于 src/Console/stubs/routes.stub?php use Illuminate\Routing\Router; Admin::routes(); Route::group([ prefix config(admin.route.prefix), namespace config(admin.route.namespace), middleware config(admin.route.middleware), as config(admin.route.prefix) . ., ], function (Router $router) { $router-get(/, HomeControllerindex)-name(home); });与旧版相比新结构包含三个关键变化Admin::routes()注册内置路由登录、登出、用户设置等认证相关路由由这一行统一注册不再需要在业务路由文件中手工编写路由分组参数全部来自配置prefix默认admin、namespace默认App\Admin\Controllers、middleware默认[web, admin]与路由命名前缀as都从 config/admin.php 的route段读取。这意味着修改路由前缀只需调整配置或设置ADMIN_ROUTE_PREFIX环境变量无需改动路由文件业务路由只保留一个最小示例分组内默认只注册GET /指向HomeControllerindex其余业务路由由你在该分组内自行追加。安装时该模板由 src/Console/InstallCommand.php 中的createRoutesFile()方法写入到app/Admin/routes.php并将DummyNamespace占位符替换为配置中的命名空间。迁移业务代码时只需把你旧版中自定义的路由按新分组规则迁移到app/Admin/routes.php即可——注意新路由一律使用Route::group(...)config(admin.route.*)的形式不要再硬编码前缀或中间件。迁移要点三配置文件结构变更1.5 的配置体系集中在 config/admin.php通过vendor:publish发布到项目config/目录迁移时请逐段对照。以下是与旧版差异最大、迁移时必须关注的配置段route 段路由前缀、命名空间与中间件route [ prefix env(ADMIN_ROUTE_PREFIX, admin), namespace App\\Admin\\Controllers, middleware [web, admin], ],prefix支持通过环境变量ADMIN_ROUTE_PREFIX覆盖默认admin置空则从根路径访问middleware中的admin是 laravel-admin 自带的路由中间件位于 src/Middleware负责认证、权限与 Pjax 等逻辑。auth 段认证体系auth [ controller App\Admin\Controllers\AuthController::class, guard admin, guards [ admin [ driver session, provider admin, ], ], providers [ admin [ driver eloquent, model Encore\Admin\Auth\Database\Administrator::class, ], ], remember true, redirect_to auth/login, excepts [ auth/login, auth/logout, ], ],迁移时需注意guard采用独立的admin会话守卫与admin用户提供者Eloquent 驱动模型为Administrator与 Laravel 默认的web守卫相互独立redirect_to与excepts用于控制未授权跳转和免鉴权路由。database 段表名与模型映射database [ connection , users_table admin_users, users_model Encore\Admin\Auth\Database\Administrator::class, roles_table admin_roles, roles_model Encore\Admin\Auth\Database\Role::class, permissions_table admin_permissions, permissions_model Encore\Admin\Auth\Database\Permission::class, menu_table admin_menu, menu_model Encore\Admin\Auth\Database\Menu::class, operation_log_table admin_operation_log, user_permissions_table admin_user_permissions, role_users_table admin_role_users, role_permissions_table admin_role_permissions, role_menu_table admin_role_menu, ],这是与迁移文件一一对应的配置段迁移数据前务必确保这里的表名与迁移创建的表完全一致。connection留空表示使用 Laravel 默认数据库连接。operation_log 段操作日志开关operation_log [ enable true, allowed_methods [GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH], except [ env(ADMIN_ROUTE_PREFIX, admin)./auth/logs*, ], ],enable控制全局开关allowed_methods限定哪些 HTTP 方法记入日志except支持admin/auth/logs*或get:admin/auth/logs两种写法用于排除无需记录的路径。注意默认排除了日志查看页面自身避免日志表被自身查询刷爆。其他迁移相关配置directory后台安装目录默认app_path(Admin)必须在运行admin:install之前修改才生效见 config/admin.php 的注释bootstrap引导文件路径默认app/Admin/bootstrap.php用于引入自定义 JS/CSS 或注册扩展check_route_permission、check_menu_roles是否启用路由权限校验与菜单角色校验upload上传磁盘与图片/文件目录disk admin对应config/filesystem.php中的磁盘skin、layout、show_version、show_environment等界面相关配置可直接沿用旧值。迁移建议把旧项目的自定义配置逐键对照写入新版config/admin.php对已删除或改名的键尤其是图表相关、旧表名相关配置进行清理避免配置残留影响运行。迁移要点四图表组件已移除如何替代1.5 已移除全部内置图表组件旧版中直接依赖图表组件的代码将无法继续使用。官方给出的替代思路是引入第三方图表库 自定义视图完整示例见 docs/en/custom-chart.md核心流程分三步第一步下载图表库并放到 public 目录。以 Chart.js 为例将其放入public/vendor/chartjs目录。第二步在引导文件中引入 JS。编辑app/Admin/bootstrap.phpuse Encore\Admin\Facades\Admin; Admin::js(/vendor/chartjs/dist/Chart.min.js);Admin::js()是 laravel-admin 的静态资源注入接口会让该 JS 在所有后台页面加载。第三步创建图表视图并在控制器中输出。新建resources/views/admin/charts/bar.blade.php放置 Canvas 画布与 Chart.js 初始化脚本然后在控制器中使用Admin::content()将视图渲染到页面内容区public function index() { return Admin::content(function (Content $content) { $content-header(chart); $content-description(.....); $content-body(view(admin.charts.bar)); }); }通过这种引入任意前端图表库 自定义 blade 视图 $content-body()输出的组合可以完全替代旧版内置图表。多图表页面的布局组织方式可进一步参考 docs/en/content-layout.md 中的布局机制。迁移时只需把旧项目中调用内置图表组件的代码替换为上述模式即可。升级迁移核对清单结合以上四点整理一份可直接执行的迁移清单环境准备确认 PHP ≥ 7.0、Laravel ≥ 5.5见 composer.json 依赖声明新建干净的 Laravel 5.5 项目全新安装composer require encore/laravel-admin 1.5.*→php artisan vendor:publish --providerEncore\Admin\AdminServiceProvider→ 修改 config/admin.php 中directory、database等配置 →php artisan admin:install表结构核对对照 database/migrations/2016_01_04_173148_create_admin_tables.php 确认 9 张表与配置表名一致按新结构重建 RBAC 数据参考 src/Auth/Database/AdminTablesSeeder.php路由迁移将旧版自定义路由迁移到app/Admin/routes.php采用 src/Console/stubs/routes.stub 的分组写法参数一律读取config(admin.route.*)配置迁移逐段对照 config/admin.php同步route、auth、database、operation_log等段删除旧版废弃配置键图表替换将依赖内置图表组件的页面改为Chart.js 等第三方库 自定义视图 $content-body()方案详见 docs/en/custom-chart.md验证php artisan serve后访问http://localhost/admin/使用admin/admin登录逐页回归菜单、权限、表单与操作日志功能。按此清单执行即可在保留业务代码的基础上平稳完成从旧版本到 laravel-admin 1.5 的整体迁移。【免费下载链接】laravel-adminBuild a full-featured administrative interface in ten minutes项目地址: https://gitcode.com/gh_mirrors/la/laravel-admin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
