这是我创建路由中间件的代码,这里我使用的是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');
}
}
答案 0 :(得分:2)
声明
function returnBalance(accountNo) {
var balance = 0.000;
for (var acn in accountNumbers) {
if (accountNumbers.hasOwnProperty(acn)) {
balance = accountNumbers[acn];
break;
}
}
//moved this outside the for loop
return balance;
}
不正确。
将其替换为
use guard
答案 1 :(得分:2)
看起来你根本不想使用自定义防护,所以只需使用Auth::check()
或auth()->check()
代替:
if (auth()->check() && auth()->user()->user_type == '5') {
return $next($request);
}
如果您想使用它,请指定它:
Auth::guard('custom-guard-name')->check()
答案 2 :(得分:1)
使用验证;
传递变量,定义如下的句柄方法:
public function handle($request, Closure $next, $guard = null)
{
if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5'){
return $next($request);
}
return redirect('/login');
}