ReflectionException (-1) 在将项目上传到cpanel后,在laravel 5.6中类App\Http\Middleware\MyMiddleware不存在。

9 浏览
0 Comments

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

但是没有成功。

0
0 Comments

在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后出现了该错误。

0