应禁止用户获取该网址:
?main_title =横幅
?main_title = law
?main_title =常见问题解答
与此
if(\Auth::user()->hasRole(['super_admin']))
答案 0 :(得分:0)
我要根据您的示例代码来假设您正在使用spatie/laravel-permission
。
Laravel Permission
内置角色middlewares
使用它们的方法之一是将您希望只由超级管理员访问的路由进行分组
Route::group(['middleware' => ['role:super_admin']], function () {
// YOUR ROUTES HERE
});
答案 1 :(得分:0)
使用中间件总是很好的,
因此,在您的情况下,首先为角色创建一个特质
public function isSuperadmin(){
return Auth::user()->role->role=='superadmin';
}
之后,为超级用户创建superadmin
之类的中间人,并首先包含您的特征
use App\Traits\Roles;
之后
use Roles;
public function handle($request, Closure $next)
{
if(!$this->isSuperadmin())
{
return back();
}
return $next($request);
}
并只需在protected $routeMiddleware
函数中的app / http / kernal.php中注册中间件
'superadmin' => \App\Http\Middleware\superadmin::class,
这使您的生活变得非常轻松,现在您不需要每次都检查url或角色,因为您想要阻止其他用户使用的任何url都只需使用
Route::get('/?main_title=law', 'HomeController@function')->middleware('superadmin')->name('admin-dashboard-home');
因此,如果用户角色是超级管理员,则可以允许他评估URL,您可以重定向其他用户或显示错误消息:)