ReflectionException (-1) 在将项目上传到cpanel后,在laravel 5.6中类App\Http\Middleware\MyMiddleware不存在。
ReflectionException (-1) 在将项目上传到cpanel后,在laravel 5.6中类App\Http\Middleware\MyMiddleware不存在。
在上传到cpanel之前,我尝试了我的laravel项目,一切工作正常。但是在将其上传到cpanel后,所有没有中间件的页面都能正常工作,但是带有中间件的页面返回以下错误信息:
ReflectionException (-1)Class App\Http\Middleware\MyMiddleware does not exist
这里是我的中间件,位于App\Http\Middleware\MyMiddleware.php:
namespace App\Http\Middleware; use Closure; class MyMiddleware { /** * 处理传入的请求。 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if(session()->has('adminId')){ return redirect('/admin/dashboard'); }else{ if($request->path() == 'admin'){ return redirect('/admin/login'); }else{ return $next($request); } } } }
这是我的App\Http\Kernel.php:
protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'myAuth' => \App\Http\Middleware\MyMiddleware::class, ];
这是我的routes/web.php中的路由:
Route::get('/admin', ['middleware' => 'myAuth', 'uses' => function(){ echo "nothing";}]);
在上传到cpanel之前,我尝试过以下操作:
php artisan config:clear composer update composer dump-autoload
但是没有成功。
在Laravel 5.6上传项目到cpanel后出现ReflectionException (-1) Class App\Http\Middleware\MyMiddleware does not exist错误。
这个问题出现的原因是文件名中缺少了一个'l',应该是MyMiddleware。文件名和类名必须相同。
解决方法是运行composer dump autoload并将文件名改为正确的MyMiddleware。
运行以下命令来重新加载composer自动加载器:
composer dump autoload
然后将文件名改为正确的MyMiddleware。
在本地测试时一切正常,但上传到cpanel后出现了该错误。