2017-02-22 3 views

Antwort

2

Middleware wird verwendet, um die HTTP-Anfragen zu filtern und nicht, was gerendert wird oder nicht. Sie können eine Controller-Funktion so filtern, dass sie nur dann verwendbar ist, wenn sie die Middleware passiert (wenn zum Beispiel authentifiziert) und der Controller die Funktion nur ausführt, wenn sie die Middleware weiterleitet. Es scheint mir, Sie versuchen, verschiedene Inhalte für authentifizierte Benutzer zu zeigen, können Sie in Blade die Auth-Fassade verwenden.

@if(Auth::check()) 
    pass  
@else 
    not pass 
@endif 

Wenn Sie aus irgendeinem Grund die Auth Fassade nicht verwenden möchten, können Sie immer Session-Variablen verwenden und die Validierung nicht so mit.

// Midleware 
Session::set('IPassedTheMiddleware','true'); 

//View 

@if(Session::get('IPassedTheMiddleware') == 'true') 
    pass  
@else 
    not pass 
@endif 

mehr zur Authentifizierung Lesen Sie hier, https://laravel.com/docs/5.4/authentication

3

einfach eine Boolesche Variable an die Steuerung, wie dies passieren:

public function handle($request, Closure $next) { 
    return $next($request, true); 
} 

dann wird die Variable auf die Ansicht übergeben:

public function controller(Request $request, $isMiddlewareSet) { 
    return view('view',['isMiddlewareSet'=>$isMiddlewareSet]); 
} 

und schließlich in Klinge Ansicht verwenden:

@if($isMiddlewareSet) 
    //middleware is detected 
@else 
    //middleware is not set 
@endif