我试图将用户与管理员分开,并禁止用户访问管理部门。
我的目录结构是
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
中有一个列,我在登录时检查并存储在会话中。
答案 0 :(得分:3)
我想你可以试试这个:
"dev": "set NODE_ENV=dev && webpack-dev-server",
希望这对你有用!!!
答案 1 :(得分:3)
您需要的是在AdminMiddleware
中创建App\Http\Middleware
。
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']);
});