laravel升级需三步:先查当前版本(composer.json中"laravel/framework"值),再确认目标版本php要求(如laravel 11需php 8.2+),最后只关注升级指南中“高影响变化”和“更新依赖项”。

你刚接触 Laravel,打开官方升级指南却满屏“高影响变化”“破坏性变更”“需手动更新”,根本不知道从哪下手、哪些必须做、哪些可以跳过——这篇文章只讲零基础能立刻看懂、立刻上手的关键动作。
先搞清三件事:升级不是更新一个包
第一步:确认你现在用的是哪个 Laravel 版本。打开项目根目录下的 composer.json 文件,找到这一行:"laravel/framework": "^10.0" —— 这里的 10.0 就是当前主版本号,它决定了你该看哪份升级指南。
第二步:查清目标版本的最低 PHP 要求。比如 Laravel 11 要求 PHP 8.2.0+,如果服务器还是 PHP 8.1,【必须先升级 PHP,否则 composer update 直接报错退出】。
第三步:别急着改代码。先去官网翻对应版本的升级指南页(例如从 10.x 升到 11.0),只盯住「高影响变化」和「更新依赖项」这两栏——其余全是可选排查项,新手第一次升级完全不用碰。
备份 → 改 composer.json → 执行 update
① 在终端进入项目根目录,运行:git status 确认工作区干净;如果没用 Git,就手动把整个项目文件夹复制一份,重命名为 myapp-backup-20260806。
② 用编辑器打开 composer.json,定位到 "require" 区块,把 "laravel/framework": "^10.0" 改成 "laravel/framework": "^11.0";如果用了 Sanctum,顺手把 "laravel/sanctum": "^3.2" 改成 "laravel/sanctum": "^4.0"。
③ 保存文件,在终端执行:composer update --with-all-dependencies。这一步会自动拉取新版本框架及所有兼容依赖,耗时取决于网络和依赖数量,期间不要关终端窗口。
④ 如果出现报错,90% 是因为 PHP 版本不够或某个第三方包没同步升级。此时暂停,回到第一步查 PHP 版本,再检查报错里提到的包名,去它的 GitHub 主页看是否支持 Laravel 11。
升级后必跑的三道验证
方法一:清缓存防旧配置残留
执行 php artisan config:clear && php artisan cache:clear && php artisan view:clear。这三步缺一不可,尤其是 config:clear,否则 .env 里明明改了 APP_DEBUG=true,页面还是不显示错误详情。
方法二:快速检测路由和基础响应
启动本地服务:php artisan serve,浏览器访问 http://127.0.0.1:8000。只要首页能打开、不报 Class not found 或 Target class does not exist,说明核心框架已加载成功。
方法三:验证数据库迁移是否兼容
运行 php artisan migrate:status。如果看到一堆 no 或报错 SQLSTATE[HY000]: General error: 1 table not found,说明 Laravel 11 默认要求 SQLite 3.8.8+,而你的旧数据库版本太低——这时要升级数据库或改用 MySQL/PostgreSQL。











