【发布时间】:2019-03-09 03:15:37
【问题描述】:
我使用的是 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
我知道我做错了什么......这是什么?
我假设也为其他用户类型创建中间件并在路由文件中使用。这是正确的做法吗?
【问题讨论】:
-
只需重定向到另一个 URL。或者显示401错误信息
-
@YanDatsyuk 我没听懂你在说什么
-
当我重定向到管理组中不存在的另一个网址时,它可以工作...
-
更改这行代码 return redirect('/administration/dashboard');您正在进行递归重定向...只需尝试将“管理/仪表板”更改为另一个 URL,另一个路由。
-
@YanDatsyuk 如果我将其更改为“/”,只要我点击管理路线,它就会将我带到网站的主页。我在管理组中创建的任何路由都会被重定向到主页...用户的 user_type 为 10,他如何管理管理路由。对不起,我是新手,自己尝试
标签: laravel laravel-5.7