3 votes

Laravel vérifie si l'utilisateur est connecté et renvoie toujours false dans un fichier lame d'erreur 404

Je suis en train de créer un fichier d'erreur 404 personnalisé et j'ai donc

sur app/Exception/handler

    public function render($request, Exception $exception)
      {
      if ($exception instanceof ModelNotFoundException) {
       return response()->view('errors.404', [], 200);
      }
       return parent::render($request, $exception);
    }

Maintenant le fichier 404.blade.php

   @if (Auth::check())
      <h1>You are loggedin 

   @else

    <h1>You arent loggedin //this is always executed

   @endif

Lorsque je place le code ci-dessus dans n'importe quel autre fichier de lame, cela fonctionne.

Qu'est-ce qui pourrait ne pas aller ?

1voto

ceejayoz Points 85962

Par défaut, Laravel ne démarre les sessions que si une route correspond et a l'attribut web intergiciel appliqué. Comme vos pages 404 ne sont pas ont un itinéraire, cela signifie qu'ils n'ont pas de données de session.

Vous avez deux approches.

  • Déplacer le middleware de session dans la rubrique "toutes les demandes" $middleware au lieu de la seule section "web". Cela peut avoir des effets secondaires...
  • Si vous êtes dans Laravel 5.5.5 ou plus, il y a nouvelle fonctionnalité appelé Route::fallback qui vous permettra d'y activer facilement des sessions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X