用户和管理员分离的路由 Laravel
Routes for users and admins separation Laravel
我正在尝试将用户与管理员分开并禁止用户访问管理员部分。
我的目录结构是
resources/
-views/
--site/
---users/
---admin/
在 web.php
我添加了这个
Route::get ('/', ['uses' => 'HomeController@index']);
Route::auth();
Route::group(['middleware' => ['auth'], 'namespace' => 'users', 'prefix' => 'site/users'], function() {
// users routes
});
Route::group(['middleware' => ['auth'], 'namespace' => 'admin', 'prefix' => 'site/admin'], function() {
// admin routes
Route::get ('/admin', ['uses' => 'AdminController@index', 'before' => 'admin']);
});
当我以管理员身份登录并尝试打开 http://example.com/admin 我有
(1/1) NotFoundHttpException
用户也是如此。
我在数据库 is_admin
中有列,我在登录期间检查并存储在会话中。
我想你可以试试这个:
Route::group(['middleware' => ['auth'], 'namespace' => 'admin', 'prefix' => 'admin'], function() {
// admin routes
Route::get ('/', ['uses' => 'AdminController@index', 'before' => 'admin']);
});
希望这对你有用!!!
您需要在 App\Http\Middleware
中创建例如 AdminMiddleware
。
php artisan make:middleware AdminMiddleware
放入新创建的中间件
public function handle($request, Closure $next)
{
if ($request->user()->type != 'A')
{
return redirect('home');
}
return $next($request);
}
根据您在存储用户会话和检查列 is_admin
的问题中的评论,您需要更改 if()
中的检查。如果你使用 Auth
会是这样的
if (Auth::user()->is_admin != 1) {...}
或 is_admin
列中的任何内容。然后在您的路线中,您可以像这样访问它
Route::group(['middleware' => 'App\Http\Middleware\AdminMiddleware'], function()
{
Route::get ('/admin', ['uses' => 'AdminController@index', 'before' => 'admin']);
});
我正在尝试将用户与管理员分开并禁止用户访问管理员部分。
我的目录结构是
resources/
-views/
--site/
---users/
---admin/
在 web.php
我添加了这个
Route::get ('/', ['uses' => 'HomeController@index']);
Route::auth();
Route::group(['middleware' => ['auth'], 'namespace' => 'users', 'prefix' => 'site/users'], function() {
// users routes
});
Route::group(['middleware' => ['auth'], 'namespace' => 'admin', 'prefix' => 'site/admin'], function() {
// admin routes
Route::get ('/admin', ['uses' => 'AdminController@index', 'before' => 'admin']);
});
当我以管理员身份登录并尝试打开 http://example.com/admin 我有
(1/1) NotFoundHttpException
用户也是如此。
我在数据库 is_admin
中有列,我在登录期间检查并存储在会话中。
我想你可以试试这个:
Route::group(['middleware' => ['auth'], 'namespace' => 'admin', 'prefix' => 'admin'], function() {
// admin routes
Route::get ('/', ['uses' => 'AdminController@index', 'before' => 'admin']);
});
希望这对你有用!!!
您需要在 App\Http\Middleware
中创建例如 AdminMiddleware
。
php artisan make:middleware AdminMiddleware
放入新创建的中间件
public function handle($request, Closure $next)
{
if ($request->user()->type != 'A')
{
return redirect('home');
}
return $next($request);
}
根据您在存储用户会话和检查列 is_admin
的问题中的评论,您需要更改 if()
中的检查。如果你使用 Auth
会是这样的
if (Auth::user()->is_admin != 1) {...}
或 is_admin
列中的任何内容。然后在您的路线中,您可以像这样访问它
Route::group(['middleware' => 'App\Http\Middleware\AdminMiddleware'], function()
{
Route::get ('/admin', ['uses' => 'AdminController@index', 'before' => 'admin']);
});