这是我创建路由中间件的代码,这里我使用的是Auth :: guard,所以它显示未定义的变量保护,提前谢谢
<?php
namespace App\Http\Middleware;
use Closure;
class accesscontrol
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5')
{
return $next($request);
}
return redirect('/login');
}
}
使用Auth;
传递变量,定义下面的句柄方法:
public function handle($request, Closure $next, $guard = null)
{
if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5'){
return $next($request);
}
return redirect('/login');
}
该声明
use guard
是不正确的。
替换为
use Illuminate\Support\Facades\Auth
看起来你根本不想使用自定义防护,所以只需使用Auth::check()
或auth()->check()
:
if (auth()->check() && auth()->user()->user_type == '5') {
return $next($request);
}
如果要使用它,请指定它:
Auth::guard('custom-guard-name')->check()