我最近設置了一些新的中間件作爲我正在集成的權限系統的一部分。ReflectionException:類不存在 - 中間件
我以前設置的自定義中間件沒有問題,我相信我都遵循相同的過程,但是這一次我收到以下錯誤每個控制器我已經加入我的新中間件:在集裝箱
ReflectionException .PHP行734: 類應用程序\ HTTP \軟件\ HTTP \中間件\ HasPermissionPermissions不存在
我可以看到它爲什麼得到一個錯誤,因爲該路徑不存在 - 但我不明白的地方正在從...
這裏是我的中間件:
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class HasPermissionPermissions
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::user()->hasPermissionTo('permissions'))
{
return $next($request);
}
else
{
flash()->error('You are not authorised to access this route.');
return redirect('/');
}
}
}
我Kernel.php
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'application.status' => \App\Http\Middleware\ApplicationCheck::class,
'email.confirmation.check' => \App\Http\Middleware\CheckIfConfirmed::class,
'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'hasPermissionAnnouncements' => \App\Http\Middleware\HasPermissionAnnouncements::class,
'hasPermissionGlobalLog' => \App\Http\Middleware\HasPermissionGlobalLog::class,
'hasPermissionLaravelLog' => \App\Http\Middleware\HasPermissionLaravelLog::class,
'hasPermissionPermissions' => \App\Http\Middleware\HasPermissionPermissions::class,
'hasPermissionUsers' => \App\Http\Middleware\HasPermissionUsers::class,
];
最後,控制器我在這一設置:
class PermissionsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
$this->middleware('hasPermissionPermissions');
$this->middleware('email.confirmation.check');
}
如果我刪除$this->middleware('hasPermissionPermissions');
它完美的工作,但我不明白我是如何設置它的任何不同!
任何人都可以看到我要去哪裏錯了嗎?
'作曲家轉儲autoload'會做 –
@CerlinBoss我已經試過了和'作曲家轉儲自動加載-o' – James
嘗試改變從'hasPermissionPermissions'中間件關鍵'hasPermission.permissions' ,看看是否有效。 – patricus