2017-02-07 5 views
1

Basé sur une condition dans la fonction jsonresponse() de JobsController, je veux déconnecter l'utilisateur et les envoyer à la page de connexion avec un message flash utilisateur invalide.Messages flash CakePHP 2.6 ne montrant pas

jsonresponse ($ data)

if($data['status'] == '0'){ 
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg')); 
     return $this->redirect($this->Auth->logout()); 
} 

Maintenant, il est redirigé vers la page de connexion, mais le message flash ne montre pas.

Dans Loginlayout

<div style="padding-left:12%"> 
     <?php echo $this->Session->flash(); ?> 
    </div> 

    <div class="loginbox"> 
     <?php echo $this->fetch('content');?> 
    </div> 
</body> 

ce qui est la question ici, quand je goto page de connexion et entrez les informations d'identification non valides, il me montre un message flash. Mais quel est le problème dans le cas ci-dessus ...! Toute aide est très appréciée. Merci.

+0

pouvez-vous nous montrer la résultat de 'debug ($ _ SESSION)' sur votre 'view' –

+0

Il ne montre rien ..! – Aamir

+0

Mais avant de rediriger, Si je débogue ($ _ SESSION) dans le contrôleur, Il montre des données de message dans le contrôleur – Aamir

Répondre

1

Vous devez vous déconnecter avant de le message flash de la session, car logout() détruit le contenu de la session

if($data['status'] == '0'){ 
    $this->Auth->logout() 
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg')); 
    return $this->redirect($this->Auth->redirectUrl()); 
} 

Ou, pour garder l'URL de redirection que vous l'avez fait:

if($data['status'] == '0'){ 
    $redirectUrl = $this->Auth->logout() 
    $this->Session->setFlash(__(INVALID_USERS_CREDENTIALS),'default', array('class' => 'error-flash-msg')); 
    return $this->redirect($redirectUrl); 
}