Salut tout le monde j'espere que vous allez bien. Quelqu'un a t'il une idée de comment ajouter des messages flash hors des controller? étant donné que la méthode geFlashBag() n'est plus disponible dans la SessionInterface.

2 réponses


Tu peux obtenir la session depuis la requête. En injectant RequestStack tu peux récupérer la requête courante et obtenir ensuite la session

ca fonction mais avecune erreur j'ignore pourquoi. J'obtient l'erreur invlide method getFlashBag() dans l'editeur de code si je ne precise pas ca if ($session instanceof Session) . et puis en cherchant dans SessionInterface cette methode n'exite pas, je ne sais si c'est mon projet qui a été mal installer depuis le debut.

public function setFirsOauthSuccessFlashMessage()
    {
        $session = $this->request->getSession();
        $is_firstOauth = $session->get('is_firstOauth', false);

        if (true === $is_firstOauth) {
            if ($session instanceof Session)
            $session->getFlashBag()->add("info", "
            Un mot de passe par défaut a été créé pour vous. 
            N'oubliez pas de le modifier en cliquant ici <a href='password'>mot de passe oublié</a> 
            ou en le faisant depuis le formulaire d'identification."
            );
            $session->remove('is_firstOauth');
        }
    }