0

我正在使用 laravel 5.7。我有一个用户表,其中有一列 user_type

0 = default users
1 = Professionals
2 = Facilities
8 = Employees
9 = Managers
10 = Administrator

另一列是布尔值 is_premium,它返回真或假。

我为管理员创建了一个中间件

namespace App\Http\Middleware;

use Closure;
use Auth; 

class IsAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::user() &&  Auth::user()->usertype == 10) {
            return $next($request);
         }

        return redirect('/administration/dashboard');
    }
}

我已经在 routes/web.php 文件中使用它作为

Route::group(['prefix' => 'administration', 'middleware' => 'admin'], function(){
  Route::get('/dashboard', 'Admin\DashboardController@index')->name('admin.dashboard');
});

当我访问管理仪表板路线时,它说

ERR_TOO_MANY_REDIRECTS

我知道我做错了什么......这是什么?

我假设也为其他用户类型创建中间件并在路由文件中使用。这是正确的做法吗?

4

1 回答 1

1

先尝试错误逻辑:

...
public function handle($request, Closure $next)
{
    if ( ! (Auth::user() &&  Auth::user()->usertype == 10) ) {
        return redirect('/home');
    }

    return $next($request);
}
...
于 2018-10-03T20:07:51.203 回答