Laravel 9项目升级后安装laravel/ui仍无法使用Auth::routes()的问题排查及解决方案
Auth::routes()报错(已安装laravel/ui仍无效) 我在帮开发者排查Laravel版本升级问题时,经常碰到这种情况——明明装了laravel/ui,还是弹出「To use the Auth::routes() method, please install the laravel/ui package.」的报错。别着急,这大概率是版本兼容、缓存或者脚手架步骤没做全导致的,下面是一步步的排查和解决方法:
确认laravel/ui版本适配Laravel 9
Laravel 9仅支持laravel/ui3.x及以上版本,如果你安装的是2.x旧版本,就会出现兼容性问题。先查看当前安装的版本:composer show laravel/ui如果版本低于3.0,先卸载旧版本,再安装适配的版本:
composer remove laravel/ui composer require laravel/ui:^3.0执行UI脚手架生成命令
光安装laravel/ui包还不够,你需要运行脚手架命令来生成Auth::routes()依赖的路由定义和视图文件。比如用Bootstrap作为前端框架的话:php artisan ui bootstrap --auth如果你使用Vue或React,把命令里的
bootstrap换成vue或react即可:php artisan ui vue --auth这个命令会自动配置好Auth相关的路由逻辑,没有执行的话,框架自然找不到
Auth::routes()方法。清除所有框架缓存
Laravel的路由、配置缓存可能会保留旧的配置,导致新安装的laravel/ui包没被加载。执行以下命令清空所有缓存:php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear缓存清除后,再尝试运行
php artisan命令,应该就能正常识别Auth::routes()了。更新Composer自动加载文件
偶尔Composer的自动加载映射没更新,导致laravel/ui的类无法被框架找到。执行以下命令重新生成自动加载文件:composer dump-autoload
按照上面的步骤逐一排查,基本就能解决这个问题了。
内容的提问来源于stack exchange,提问作者Aryabhima A. Rahman

