Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.2以管理员身份登录后重定向管理员页面_Laravel - Fatal编程技术网

Laravel 5.2以管理员身份登录后重定向管理员页面

Laravel 5.2以管理员身份登录后重定向管理员页面,laravel,Laravel,拉威尔5.2已经发布一段时间了。是的,它有新的身份验证功能,这是非常好的。专门为初学者准备的。 我的问题,, 如何检查用户是否为管理员,然后正确重定向到管理员/仪表板?我知道一种方法是在数据库中使用admin标志,但你们中的任何人都可以展示一些示例吗?AuthController扩展了AuthenticatesAndRegistersUsers特性,它有一个名为redirectPath的公共方法。在我的例子中,我将在AuthController上扩展该方法,并将我的逻辑放在那里: public

拉威尔5.2已经发布一段时间了。是的,它有新的身份验证功能,这是非常好的。专门为初学者准备的。 我的问题,,
如何检查用户是否为管理员,然后正确重定向到管理员/仪表板?我知道一种方法是在数据库中使用admin标志,但你们中的任何人都可以展示一些示例吗?

AuthController扩展了AuthenticatesAndRegistersUsers特性,它有一个名为redirectPath的公共方法。在我的例子中,我将在AuthController上扩展该方法,并将我的逻辑放在那里:

public function redirectPath()
{
    if (Auth::user->myMethodToCheckIfUserHasAnAdminRoleLikeAnEmailOrSomethingLikeThat()) {
        redirect('admin/dashboard');
    }

    redirect('home');
}

AuthController扩展了AuthenticatesAndRegistersUsers特性,该特性具有一个名为redirectPath的公共方法。在我的例子中,我将在AuthController上扩展该方法,并将我的逻辑放在那里:

public function redirectPath()
{
    if (Auth::user->myMethodToCheckIfUserHasAnAdminRoleLikeAnEmailOrSomethingLikeThat()) {
        redirect('admin/dashboard');
    }

    redirect('home');
}

转到AuthController.php并添加此方法

其中role是数据库中定义的用户角色

protected function authenticated($request,$user){
    if($user->role === 'admin'){
        return redirect()->intended('admin'); //redirect to admin panel
    }

    return redirect()->intended('/'); //redirect to standard user homepage
}

转到AuthController.php并添加此方法

其中role是数据库中定义的用户角色

protected function authenticated($request,$user){
    if($user->role === 'admin'){
        return redirect()->intended('admin'); //redirect to admin panel
    }

    return redirect()->intended('/'); //redirect to standard user homepage
}
如Laravel 5.3/5.4所示

添加以下行以创建用户表迁移

$table->boolean('is_admin');
将以下方法添加到LoginController

protected function authenticated(Request $request, $user)
{
    if ( $user->is_admin ) {
        return redirect('/admin/home');
    }

    return redirect('/home');
}
其他注意事项不要忘记向RedirectIfAuthenticated中间件添加以下行:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        // the following 3 lines
        if (Auth::user()->is_admin) { 
            return redirect('/admin/home');
        }

        return redirect('/home');
    }

    return $next($request);
}
否则,如果您键入域/登录名,并以管理员身份登录,则会将其重定向到主页,而不是管理员/主页。

如Laravel 5.3/5.4所示

添加以下行以创建用户表迁移

$table->boolean('is_admin');
将以下方法添加到LoginController

protected function authenticated(Request $request, $user)
{
    if ( $user->is_admin ) {
        return redirect('/admin/home');
    }

    return redirect('/home');
}
其他注意事项不要忘记向RedirectIfAuthenticated中间件添加以下行:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        // the following 3 lines
        if (Auth::user()->is_admin) { 
            return redirect('/admin/home');
        }

        return redirect('/home');
    }

    return $next($request);
}
否则,如果您键入域/登录名,并以管理员身份登录,则会将其重定向到home而不是admin/home。

在Auth/LoginController中,存在受保护的$redirectTo='/home'; 例如,将“/home”更改为“/login”,并创建一个新的控制器,在控制器中获取用户的信息,检查他是否是管理员,然后将他重定向到正确的页面

在Auth/LoginController中有受保护的$redirectTo=“/home”;
例如,将“/home”更改为“/login”,并创建一个新的控制器,在控制器中获取用户的信息,检查他是否是管理员,然后将他重定向到正确的页面

您尝试了什么吗?嘿,我做了一些事情,但我需要有人在php artisan make:auth命令后告诉我如何做。您尝试了什么吗?嘿,我做了几件事,但我需要有人告诉我如何在php artisan make:auth命令之后完成。