laraclassified上传插件报错Class "LaravelLocalization" not found
报错信息
Class "LaravelLocalization" not found
问题场景
使用laraclassified程序时,上传reviews插件后触发上述错误。
报错定位
错误出现在extras/plugins/reviews/ReviewsServiceProvider.php文件第57行,触发位置为路由前缀配置时调用\LaravelLocalization::setLocale()的逻辑,相关代码片段:
53▕ public function setupRoutes(Router $router) 54▕ { 55▕ // Front 56▕ $router->group([ **57▕ 'prefix' => \LaravelLocalization::setLocale(),** 58▕ 'middleware' => ['web', 'localize', 'localizationRedirect', 'localeSessionRedirect'], 59▕ 'namespace' => 'extras\plugins\reviews\app\Http\Controllers' 60▕ ], function ($router) 61▕ { extras/plugins/reviews/ReviewsServiceProvider.php:33 extras\plugins\reviews\ReviewsServiceProvider::setupRoutes() +7 vendor frames ▕ [internal]:0 Illuminate\Foundation\Application::Illuminate\Foundation\{closure}()
排查与解决方法
按优先级依次排查以下问题:
- 确认依赖包安装状态:
LaravelLocalization类来自mcamara/laravel-localization扩展包,laraclassified默认预装该包。在项目根目录执行composer show mcamara/laravel-localization,如果无对应包信息,执行composer require mcamara/laravel-localization安装与当前laraclassified版本兼容的包版本。 - 检查门面与服务提供者配置:打开
config/app.php,确认providers数组中存在Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class注册项,aliases数组中存在'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class别名配置。插件上传时可能触发配置缓存重置、配置覆盖,会导致该配置丢失。 - 清除项目缓存:执行以下命令重置所有框架缓存,排除缓存导致的类加载失败问题:
php artisan config:clear php artisan cache:clear php artisan route:clear php artisan optimize:clear
- 修正服务提供者加载逻辑:从报错栈可以看到
setupRoutes()是在服务提供者的register阶段被调用的,Laravel的服务提供者register阶段仅完成自身绑定注册,门面别名、其他依赖的服务要到boot阶段才会完成加载,此时调用门面会直接触发类找不到错误。把setupRoutes()的调用从register()方法移到boot()方法中,等所有服务注册完成后再注册路由即可解决。 - 调整插件加载顺序:如果上述操作无效,调整插件加载配置,确保reviews插件的加载顺序在
laravel-localization服务提供者注册完成之后,避免前置调用未注册的类。
内容的提问来源于stack exchange,提问作者kasim pantina
相关产品推荐
相关产品推荐

