为什么中间件总是触发?
Why does middleware always fires?
登录后,我的应用程序总是按预期转到仪表板。
但即使点击其他目录后,它也总是转到仪表板。
据我所知,名为 RedirectIfAdmin
的中间件总是会触发。
我正在使用 hesto/multi-auth
。
RedirectIfAdmin:
public function handle($request, Closure $next, $guard = 'admin')
{
if (Auth::guard($guard)->check()) {
return redirect('myapp/dashboard');
}
return $next($request);
}
在我的管理路径文件中:
Route::group(['prefix' => '/myapp', 'as'=>'myapp.'], function () {
Route::resources([
'user' => '\App\Http\Controllers\UserController'
]);
});
因此,如果我转到 myapp/user/
,我总是会被重定向到 myapp/dashboard
。
我知道当我转到 myapp/user
时触发的是 RedirectIfAdmin
中的代码,因为如果我将它更改为 myapp/dashboard123
然后它会转到 url 每次浏览 myapp/user
、myapp/user/create
、myapp/user/123
、myapp/user/123/edit
等
有什么想法吗?
检查用户控制器上的__construct()
,看看你是否在那里引用了它
在调用您的 myapp/user/
时尝试用
调用它
project-url/admin/myapp/user
如果您使用路由呼叫,则使用 like
admin.myapp.user
第 1 步:
在你的RouteServiceProvider.php
里面
在地图函数里面添加这一行:
$this->mapWebRoutes();
$this->mapAdminRoutes();
第 2 步:
在 RouteServiceProvider 内部 class 添加此函数:
protected function mapAdminRoutes()
{
Route::group([
'middleware' => ['web', 'admin', 'auth:admin'],
'prefix' => 'admin',
'as' => 'admin.',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/admin.php');
});
}
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
第 3 步:
运行 在您的项目中使用下面的命令
php artisan optimize:clear
登录后,我的应用程序总是按预期转到仪表板。
但即使点击其他目录后,它也总是转到仪表板。
据我所知,名为 RedirectIfAdmin
的中间件总是会触发。
我正在使用 hesto/multi-auth
。
RedirectIfAdmin:
public function handle($request, Closure $next, $guard = 'admin')
{
if (Auth::guard($guard)->check()) {
return redirect('myapp/dashboard');
}
return $next($request);
}
在我的管理路径文件中:
Route::group(['prefix' => '/myapp', 'as'=>'myapp.'], function () {
Route::resources([
'user' => '\App\Http\Controllers\UserController'
]);
});
因此,如果我转到 myapp/user/
,我总是会被重定向到 myapp/dashboard
。
我知道当我转到 myapp/user
时触发的是 RedirectIfAdmin
中的代码,因为如果我将它更改为 myapp/dashboard123
然后它会转到 url 每次浏览 myapp/user
、myapp/user/create
、myapp/user/123
、myapp/user/123/edit
等
有什么想法吗?
检查用户控制器上的__construct()
,看看你是否在那里引用了它
在调用您的 myapp/user/
时尝试用
project-url/admin/myapp/user
如果您使用路由呼叫,则使用 like
admin.myapp.user
第 1 步:
在你的RouteServiceProvider.php
里面在地图函数里面添加这一行:
$this->mapWebRoutes();
$this->mapAdminRoutes();
第 2 步:
在 RouteServiceProvider 内部 class 添加此函数:
protected function mapAdminRoutes()
{
Route::group([
'middleware' => ['web', 'admin', 'auth:admin'],
'prefix' => 'admin',
'as' => 'admin.',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/admin.php');
});
}
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
第 3 步: 运行 在您的项目中使用下面的命令
php artisan optimize:clear