群组访问 laravel 中的页面
Group Access to pages in laravel
在 AuthServiceProvider 中定义了访问控制。我需要检查在路由 web.php 中访问页面的权限。
如果用户不是管理员,则页面应重定向错误页面或找不到页面。
如果有人试图从 url 访问页面,如何创建重定向到 404 页面的中间件。
AuthServiceProvider
Gate::define('isAdmin',function($user){
return $user->type === 'admin';
});
Gate::define('isGeneralUser',function($user){
return $user->type === 'user';
});
Gate::define('isPaidUser',function($user){
return $user->type === 'paid';
});
路线web.php
if (Gate::allows('isAdmin') && Gate::allows('isPaidUser')) {
Route::get('/home-page', function () {
return view('pages.trades');
});
}
创建中间件
class CheckIsTradeable
{
public function handle($request, Closure $next)
{
if ($request->user()->type !== 'admin' && $request->user()->type !== 'paid') {
abort(404);
}
return $next($request);
}
}
在里面注册Kernal
protected $routeMiddleware = [
...
'isTradeable' => \App\Http\Middleware\CheckIsTradeable::class,
];
并在您的路线中查看
Route::get('/home-page', function () {
return view('pages.trades');
})->middleware('isTradeable');
在 AuthServiceProvider 中定义了访问控制。我需要检查在路由 web.php 中访问页面的权限。 如果用户不是管理员,则页面应重定向错误页面或找不到页面。
如果有人试图从 url 访问页面,如何创建重定向到 404 页面的中间件。
AuthServiceProvider
Gate::define('isAdmin',function($user){
return $user->type === 'admin';
});
Gate::define('isGeneralUser',function($user){
return $user->type === 'user';
});
Gate::define('isPaidUser',function($user){
return $user->type === 'paid';
});
路线web.php
if (Gate::allows('isAdmin') && Gate::allows('isPaidUser')) {
Route::get('/home-page', function () {
return view('pages.trades');
});
}
创建中间件
class CheckIsTradeable
{
public function handle($request, Closure $next)
{
if ($request->user()->type !== 'admin' && $request->user()->type !== 'paid') {
abort(404);
}
return $next($request);
}
}
在里面注册Kernal
protected $routeMiddleware = [
...
'isTradeable' => \App\Http\Middleware\CheckIsTradeable::class,
];
并在您的路线中查看
Route::get('/home-page', function () {
return view('pages.trades');
})->middleware('isTradeable');