2017-11-29 1 views
0

Ich möchte den folgenden Code ausführen, um zu überprüfen, ob der Benutzer über soziale Medien angemeldet ist und wenn ja, umleiten ihn auf die Profil bearbeiten Seite, so ist er verpflichtet, seine Informationen zu aktualisieren, möchte ich nicht den Benutzer angemeldet über soziale Medien, um in der Lage zu sein, auf meiner Website zu navigieren, ohne dass der Name, der Benutzername und das Profil wieder gesetzt sind.Laravel | Führen Sie IF jede Seite

public function check_user_info() 
{ 
    $user = User::where('access_token', Auth::user()->access_token)->first(); 

    if (empty($user->fname) || empty($user->lname) || is_null($user->username) || empty($user->username)) 
    { 
     $user = Auth::user(); 
     return view('modify')->with([ 
      'user' => $user, 
      ]); 
    } 
    return view('home'); 
} 
+1

Sie können 'middleware' dafür. https://laravel.com/docs/5.5/middleware – Jackowski

+0

Ich habe gerade eine Middleware erstellt, in der kernel.php hinzugefügt, aber nichts passiert ... –

Antwort

0

Sie könnten eine Benutzerrichtlinie erstellen und fügen Sie die folgende Funktion:

public function home(User $user) 
{ 
    return (empty($user->fname) || empty($user->lname) || is_null($user->username) || empty($user->username)); 
} 

und in Ihnen zu Hause Controller:

public function index(){ 
    try{ 
     $this->authorize('home', User::class); 
    }catch(AuthorizationException $e){ 
     return view('modify')->with([ 
     'user' => Auth::user(), 
     ]); 
    } 
    return view('home'); 
} 
Verwandte Themen