Lavalvel中间件不存在



我最近从普通php迁移到了Laravel,并在本地主机中完成了一个项目,一切都很好,至少符合我的预期,但当我将文件移动到服务器时,我遇到了中间件问题。

现在我有一个名为isAdmin的中间件,它是使用artisan命令创建的。我还将内核中的类注册为:

'isAdmin' => AppHttpMiddlewareIsAdmin::class, 

我的isAdmin中间件cass配置为:

<?php
namespace AppHttpMiddleware;
use AppModelsUser;
use Closure;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
class isAdmin
{
/**
* Handle an incoming request.
*
* @param  IlluminateHttpRequest  $request
* @param  Closure(IlluminateHttpRequest): (IlluminateHttpResponse|IlluminateHttpRedirectResponse)  $next
* @return IlluminateHttpResponse|IlluminateHttpRedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if (Auth::user() &&  Auth::user()->isAdmin == 1) {
return $next($request);
}
return redirect('/');
}
}

这个中间件在我的本地主机上运行良好,我已经使用中间件对所有路由进行了分组,如下所示:

Route::group(['middleware' => 'isAdmin'], function () {
//routes that uses this middlewares here
});

当我上传我的代码到共享托管服务器,我得到错误:

Target class [AppHttpMiddlewareIsAdmin] does not exist.

有人能建议我怎么解决这个问题吗??我还意识到我不能运行artisan命令,因为服务器上当前的php版本低于8.0.2

解决方案

use AppHttpMiddlewareIsAdmin;
Route::group(['middleware' => IsAdmin::class], function () {
//routes that uses this middlewares here
});

最新更新