【发布时间】:2021-07-23 06:12:11
【问题描述】:
Laravel 忽略了我的中间件。我有一个中间件,可以检查您在我们的网站上是否有账单信息。如果您拥有它们但管理员未验证它们,则中间件必须继续阻止。或者,如果他们被拒绝。
class HasBilling {
public function handle($request, Closure $next) {
$user_profile = UsersProfile::where('user_id', Auth::id())->first();
if (!is_object($user_profile) && !\Auth::user()->hasPermissionTo('soy-agente') && !\Auth::user()->hasPermissionTo('soy-agente_inversor')) {
return redirect()->route('myaccount.facturacion.ver')->with('error', 'No posees datos de facturación. Antes de usar algunas funciones como facturación, publicidad, merkado, tarifas... debes rellenar los datos.');
}
if(is_object($user_profile) && is_null($user_profile->validate)){
return redirect()->route('myaccount.facturacion.ver')->with('error', 'Tus datos de facturación están pendiente de validar');
}
if(is_object($user_profile) && $user_profile->validate == 2)){
return redirect()->route('myaccount.facturacion.ver')->with('error', 'Tus datos de facturación han sido rechazados.');
}
return $next($request);
}
}
“user_profile”不是对象的部分有效。但是其他两个 if 完全被忽略了。由于 "validate" null 或值为 "2" 的对象不起作用。
我在内核上注册的中间件:
protected $routeMiddleware = [
...
'hasbilling' => \App\Http\Middleware\HasBilling::class,
];
我的中间件应用了:
public function __construct()
{
$this->middleware(['auth', 'verified']);
$this->middleware('hasbilling');
}
有人可以帮助我吗?我不知道它可能在哪里失败。
【问题讨论】:
标签: laravel middleware