多重身份验证转到不同的刀片。我怎样才能做到这一点?

时间:2019-02-13 14:09:06

标签: laravel

Login Controller我有我的home.blade.php和我的admin.blade.php 问题是验证正在home.blade.php内部进行 我的问题是,如何在登录按钮中进行验证?

web.php

2 个答案:

答案 0 :(得分:0)

如果使用扩展刀片语法,则可以使用内联来扩展派生布局,具体取决于这样的角色:

@extends((auth()->user()->hasRole('Admin')) ? 'layouts.admin' : 'layouts.home')

或覆盖redirectTo()LoginController.php中的RegisterController.php函数,如下例:

public function redirectTo(){

// User role
 $role = Auth::user()->role->name;
// If your using 'spatie/laravel-permission' you can do something like this
 $role = auth()->user()->getRoleNames()->first();

// Check user role
 switch ($role) {
    case 'Admin':
            return '/admin-home';
        break;
    case 'Manager':
            return '/projects';
        break; 
    default:
            return '/home'; 
        break;
 }
}

还必须在两个控制器上都删除此属性:

protected $redirectTo = '/home';

答案 1 :(得分:0)

将我的代码复制并粘贴到您的LoginController.phpRegisterController.php中:

  public function redirectTo(){
   // Check if user is Admin
    if(auth()->user()->isAdmin) // if IsAdmin == 1 user is an Admin
      {
        return '/admin';
      } 
     else // if IsAdmin != 1 user is not an Admin
     {
        return '/home';
     }
   }

此外,您还必须在两个控制器上评论此属性: // protected $redirectTo = '/home';