我需要一些关于laravel 5.3中间件的帮助。我的问题如下:
我制作的应用程序有2个前端区域,分别是web和admin。
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/');
}
return redirect('admin/');
}
}
我在App \ Http \ Controllers \ Admin文件夹中有2个控件
这些是LoginController和HomeController
如果我进入localhost:8000 / admin /我去LoginController并写你好。这是好的,但如果我去localhost:8000 / admin / home我看到另一个字符串写“主页”但我想重定向到用户管理员/登录如果用户没有验证但我不能这样做。
我在Kernel.php中添加了中间件组件
'admin' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
并添加了像这样的routeMiddleware
'admin' => \App\Http\Middleware\AdminMiddleware::class,
我想告诉它我不想要角色系统
我想制作2个模块
用户和管理员不同。
用户可以成为管理员吗?不...管理员与用户不同......(其他人)
答案 0 :(得分:0)
您必须在App \ Providers \ RouteServiceProvider.php
文件中添加此功能public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapAdminRoutes();
//
}
...
protected function mapAdminRoutes()
{
Route::group([
'middleware' => 'admin',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/admin.php');
});
}