首页/新闻资讯/正文详情

laravel-admin 1.5 升级迁移全指南:表结构、路由与配置变更对照

发布时间:2026/9/23 19:36:15 来源:云帆数科 栏目:资讯中心
laravel-admin 1.5 升级迁移全指南:表结构、路由与配置变更对照
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),仅供参考

相关推荐

SpringBoot+微信小程序构建河南美食平台实战
SpringBoot+微信小程序构建河南美食平台实战

1. 项目背景与核心价值作为一名在Java全栈开发领域深耕多年的技术人,最近指导了几位应届生的毕业设计,其中这个基于SpringBoot和微信小程序的河南美食平台让我印象深刻。不同于市面上通用的外卖系统,它精准聚焦地域特色美食,实现了… · 2026/9/23 19:36:08

JavaWeb新生报到系统实战:JSP+Servlet+SQL从设计到部署
JavaWeb新生报到系统实战:JSP+Servlet+SQL从设计到部署

简介:基于JavaJSPSQL技术栈的新生报到系统毕业设计项目源码,面向计算机相关专业需完成Web开发课题的学生,覆盖新生信息录入、报到确认、宿舍分配、课程安排等典型业务流程,可用于课程设计或毕业设计参考。压缩包共161个文件&#… · 2026/9/23 19:36:08

量子通灵术:破解祖传Bug的创新方法
量子通灵术:破解祖传Bug的创新方法

1. 项目背景与核心概念在软件测试领域,我们经常会遇到一些难以定位的"祖传bug"——这些缺陷往往由早已离职的架构师留下,由于缺乏文档或代码注释,修复过程如同考古发掘。这个项目提出了一种极具创意的解决方案:通过&quo… · 2026/9/23 19:36:08

QtScrcpy:把安卓手机变成低延迟第二屏的免费投屏工具
QtScrcpy:把安卓手机变成低延迟第二屏的免费投屏工具

QtScrcpy:把安卓手机变成低延迟第二屏的免费投屏工具 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 你有没有这种经历:想在大屏幕上用手机,装了… · 2026/9/23 20:16:14

基因锁底层原理拆解 3步搞定配置避坑保姆级教程
基因锁底层原理拆解 3步搞定配置避坑保姆级教程

基因锁底层原理拆解 3步搞定配置避坑保姆级教程 配置环境就卡半天?别急,这通常是“基因锁”机制没配对。今天这篇保姆级教程,不讲虚的,直接带你钻进代码底层,把那些让你抓狂的依赖冲突、版本不兼容问题一次性讲透。很多老手都在踩的坑,我帮你提前填平… · 2026/9/23 20:16:08

基于JNA的海康威视SDK二次开发:摄像头与门禁联动实战
基于JNA的海康威视SDK二次开发:摄像头与门禁联动实战

简介:面向毕业设计、课程设计及实际项目开发,基于Java与海康威视SDK二次开发实现网络摄像头与门禁系统整合方案,覆盖设备注册登录、局域网发现扫描、门禁人员列表与存储人脸获取、下发门禁卡与门禁人脸、门禁事件布防及上传(含照片… · 2026/9/23 20:16:08

增广矩阵束二维DOA估计:原理、Python实现与工程避坑指南
增广矩阵束二维DOA估计:原理、Python实现与工程避坑指南

简介:这份资源面向信号处理、无线通信、雷达与声学成像方向的学习者和研究人员,聚焦二维DOA估计这一经典课题,提供基于增广矩阵束方法的MATLAB实现范例。压缩包共2个文件,均为m脚本,体积约1KB,分别承担L型阵… · 2026/9/23 20:15:54

3个高频面试题拆解汽车贷款流程性能优化
3个高频面试题拆解汽车贷款流程性能优化

3个高频面试题拆解汽车贷款流程性能优化 刚毕业接第一个项目,是不是感觉脑子一团浆糊?看了一堆教程还是不会写项目,面试官问起并发处理、流程引擎这些 高频面试题… · 2026/9/23 20:15:54

JDK 22 Windows安装深度解析:环境配置、文件校验与模块化实战
JDK 22 Windows安装深度解析:环境配置、文件校验与模块化实战

简介:本资源为Oracle官方发布的JDK 22 Windows 64位标准安装包(jdk-22_windows-x64_bin.zip),面向Java初学者、高校教学及企业开发人员,用于搭建本地Java开发与运行环境,支撑编译、调试、打包及JVM调优等核… · 2026/9/23 20:15:48

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码