我正在使用laravel 5.7。我有一个用户表,其中的列为user_type
phrase
另一个是布尔值is_premium的列,它返回true或false。
我已经为管理员创建了一个中间件
Elasticsearch
我已经在routes / web.php文件中将其用作
0 = default users
1 = Professionals
2 = Facilities
8 = Employees
9 = Managers
10 = Administrator
当我访问管理仪表板路线时,它说
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');
}
}
我知道我做错了什么...这是什么?
而且我也想为其他用户类型创建中间件并在路由文件中使用。这是正确的方法吗?
答案 0 :(得分:2)
首先尝试错误的逻辑:
...
public function handle($request, Closure $next)
{
if ( ! (Auth::user() && Auth::user()->usertype == 10) ) {
return redirect('/home');
}
return $next($request);
}
...