我正在一个项目上,我想检查用户是否是管理员,如果他不是管理员,则将他重定向到登录页面,但是如果他是管理员,则将他重定向到在管理页面上,我最初将其设置为主页url,但后来将其更改为登录url,因此,如果用户是管理员,它将重定向至管理url,但如果不是,则仍将其重定向至主页url,而不是登录名我将其更改为此处的网址是管理员网址代码
<?php
namespace App\Http\Middleware;
use Closure;
class Admin{
public function handle($request, Closure $next){
if(auth()->user()->isAdmin == 1){
return $next($request);
}
return redirect('login')->with('error','You have not admin access');
}
}
这是web.php代码
Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about');
Route::get('/dashboard', 'DashboardController@index');
Auth::routes();
Route::get('admin/routes', 'AdminController@index')->middleware('admin');
我该如何解决这个问题?
答案 0 :(得分:0)
尝试此操作,因为您正在使用路由重定向用户。
return redirect()->route('login')->with('error','You have not admin access');
希望这会有所帮助:)
答案 1 :(得分:0)
在中间件中访问登录后调用路由。
Auth::routes();
Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about');
Route::group(['middleware' => 'admin'], function() {
Route::get('/dashboard', 'DashboardController@index');
Route::get('admin/routes', 'AdminController@index')
});