どのようにパッケージを使用せずにララベルのユーザーロールの独自のミドルウェアを作成するには?
5097 ワード
ステップ1
ロールチェック論理のためのミドルウェアの作成
~$ php artisan make:middleware RoleChecker
ステップ2
Middlewere/RoleChecker.php
public function handle($request, Closure $next, $super_adminRole, $adminRole, $sellerRole)
{
$roles = Auth::check() ? Auth::user()->role->pluck('name')->toArray() : [];
if (in_array($super_adminRole, $roles)) {
return $next($request);
} else if (in_array($adminRole, $roles)) {
return $next($request);
} else if (in_array($sellerRole, $roles)) {
return $next($request);
}
return Redirect::route('home');
}
In the above code we assume that there are 4 types of users. Super Admin, Admin, Seller and Normal Auth User. We don't need to check the normal users in the middleware. So we are checking the remaining three Roles.
ステップ3
Kernel.php
protected $routeMiddleware = [
'roleChecker' => \App\Http\Middleware\RoleChecker::class,
];
Here we added the middleware
ステップ4
web.php
middleware(['roleChecker:super_admin,admin,seller']);
middleware(['roleChecker:super_admin,null,null']);
middleware(['roleChecker:null,admin,null']);
middleware(['roleChecker:null,null,seller']);
Use any of above code snippet to set middleware on any Route
ノート
middleware(['roleChecker:null,null,seller']);
ならば、売り手だけがアクセスすることができます.Reference
この問題について(どのようにパッケージを使用せずにララベルのユーザーロールの独自のミドルウェアを作成するには?), 我々は、より多くの情報をここで見つけました https://dev.to/imrulhasan273/how-to-create-your-own-middleware-for-user-role-in-laravel-without-using-a-package-2l05テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol