Php Laravel中间件在路由中不工作
我对laravel(5.5)的中间产品有问题。首先,我创建了一个名为AdminPanelAuth的中间件 这就是我的中间件:Php Laravel中间件在路由中不工作,php,laravel,middleware,Php,Laravel,Middleware,我对laravel(5.5)的中间产品有问题。首先,我创建了一个名为AdminPanelAuth的中间件 这就是我的中间件: <?php namespace App\Http\Middleware; use Closure; use Auth; class AdminPanelAuth { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Cl
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AdminPanelAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::user() && Auth::user()->hasRole('admin'))
{
return $next($request);
}
else{
return redirect()->route('home');
}
}
}
管理中间件不适用于我的路由。我一直试图把这个放在web.php中,但一切都没有改变,仍然不适合我
ps.i allready使用composer转储自动加载、php artisan清除:编译和php artisan优化
谢谢你的帮助,祝你好运 尝试将
web
中间件与admin
分离,如下所示:
Route::group(['middleware' => 'web', 'prefix' => config('backpack.base.route_prefix')], function () {
...
Route::group(['middleware' => 'admin'], function() {
...
});
...
};
编辑:
在中间件中添加使用light\Support\Facades\Auth代码>
在内核
中,添加在节流阀下创建的管理
中间件
编辑2:
Kernel.php
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\AdminPanelAuth::class, //Make sure your middleware is last in array
],
...
]
Route::group(['middleware' => 'web', 'prefix' => config('backpack.base.route_prefix')], function () {
...
};
web.php
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\AdminPanelAuth::class, //Make sure your middleware is last in array
],
...
]
Route::group(['middleware' => 'web', 'prefix' => config('backpack.base.route_prefix')], function () {
...
};
您使用的是什么版本的Laravel?您是否修改了web
中间件组,并且正在使用StartSession::class
?@NikolaGavric Laravel 5。5@btl中间件工作正常,我的只是管理中间件不工作不工作,我想我的内核出了一些问题。你能至少在管理中间件
中转储一些东西吗?这样你就可以确认请求是否命中了中间件?请求没有命中中间件可以在问题中包含管理中间件
代码吗?检查更新后的答案,如果仍然没有工作时,发布更新的代码,并尝试通过dd('HIT')检查请求是否命中中间件
在中间件的句柄
方法中