vbn*_*bie 0 php middleware laravel
内核.php
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'isSeller' =>App\Http\Middleware\IsSeller::class,
'isDealer' =>App\Http\Middleware\IsDealer::class,
];
Run Code Online (Sandbox Code Playgroud)
网页.php
Route::group(['middleware'=>['isDealer:verified']],function (){
Route::post("/doc_submit", "DealerController@docSubmit")->name('doc-submit');
});
Run Code Online (Sandbox Code Playgroud)
IsDealer.php
public function handle($request, Closure $next)
{
if ( Auth::check() && Auth::user()->isDealer() )
{
dd($request->route()->parameters()); // []
$notification_count = count(Notification::where('user_id','=', Auth::user()->id)->where('seen', '=', 0)->get());
View::share('notification', $notification_count);
return $next($request);
} else {
return GlobalController::AuthLoginPrompt("dealer");
}
}
Run Code Online (Sandbox Code Playgroud)
当他们尝试提交文档时,我需要检查该用户的用户帐户验证状态,我如何将参数传递给中间件?dd($request->route()->parameters()) return [], 我怎么能得到“验证”,因为我已经写了 ['middleware'=>['isDealer:verified']]
根据laravel 文档,额外的中间件参数将在 $next 参数之后传递给中间件,尝试:
public function handle($request, Closure $next, $verify)