2016-10-21 3 views
1

app/Http/Contrôleurs/auth/LoginController.phpsession de Flash sur fermeture de session Laravel

Dans mon dossier app j'ai une LoginController que je passer outre la fonction de fermeture de session pour ajouter un flash session:

public function logout(Request $request) 
{ 
    $this->guard()->logout(); 

    $request->session()->flush(); 

    $request->session()->regenerate(); 
    $request->session()->flash('status', 'Task was successful!'); 

    error_log('~~~~~~~~~~~~~~~~~~~~~'); 
    error_log($request->session()->get('status')); 
    error_log('~~~~~~~~~~~~~~~~~~~~~'); 

    return redirect('/'); 
} 

mon journal d'erreur fonctionne, mais quand je fait redirigés il va aux routes/ligne web.php:

Route::get('/', '[email protected]'); 

mais à ce stade, la session ne semble plus exister. Mon objectif final était de l'afficher sur ma page de connexion que l'utilisateur s'est déconnecté avec succès. J'ai l'impression que ma logique est défectueuse et qu'elle est effacée via le fichier des routes, mais je sais que j'écris à la session. Aucun conseil?

+0

Avez-vous essayé cette approche? 'return redirect ('/') -> withStatus ('La tâche a été réussie!');' – manix

+0

return redirect ('/ login'); m'empêche d'aller à la redirection d'itinéraire et me laisse flasher à mon identifiant. Cela va être ma solution, mais je voudrais savoir comment garder le flash pendant la redirection de la route (si possible) –

Répondre

0

Essayez cette

public function logout(){ 
    //Illuminate\Support\Facades\Auth::logout(); 
    Auth::logout(); 
    flash()->info('Bye', 'You have been successfully logged out!'); 
    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/'); 
}