ユーザーがロールに一致するかどうかを確認するための単純なミドルウェアを追加しようとしています。私はミドルウェアを使用する場合、私は例外を取得問題に実行しているよ:Laravel RoleMiddleware、クラスロールが見つかりません
ReflectionException:私は仮定して、クラスの役割は
存在しない、私は役割という名前のクラスを呼び出そうとしません。これはLaravelのどこかで魔法のように起こっています。
マイミドルウェア:usersテーブルで
class RoleMiddleware
{
/**
* Run the request filter.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (! $request->user()->is($role)) {
return redirect('/login');
}
return $next($request);
}
}
が、私は役割のフィールドを持っていると私は持っているユーザーモデルで:
/**
* Check if a user is a certain role
*
* @param $role
* @return bool
*/
function is($role) {
return ($this->role == $role);
}
ルートグループ:
Route::group(['prefix' => 'support', 'middleware' => ['role:admin', 'web']], function() {
Route::get('threads', '[email protected]');
});
In Http/Kernel.php:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'role' => [
RoleMiddleware::class,
],
];
誰でもこのReflectionExceptionの原因となる可能性のあるアイデアはありますか?
てみ '\アプリケーション\のHttp \ミドルウェア\ RoleMiddleware: :class'とexecut 'dump-autoload'も実行したら、それを教えてください。 –
名前空間は問題なく、クラスに到達することができ、単に役割:管理者の代わりにミドルウェア '役割'を使用すると、欠落している引数についてエラーをスローします。 – Devon