1

J'ai un formulaire de connexion et je suis en train de le message flash lors de la connexion invalide comme celui-ci dans le contrôleur:Comment vérifier si le message flash réglé est vide dans CakePHP

$this->Session->setFlash(__('Invalid username or password')); 

et afficher le message comme ci-dessous fichier ctp:

<div id="error" > 
<?php 
echo $this->Session->flash(); 
?> 
</div> 

CSS pour la div est la suivante:

#error { 
    padding:10px; 
    display:inline-block; 
    margin-right: 18px; 
    font-size:16px; 
    font-weight:600; 
    position:relative; 
    top:20px; 
    } 

Lorsque la page est chargée une message flash vide est affiché. Comment vérifier si $this->Session->flash(); est vide et afficher div uniquement si ce n'est pas vide ??

Lorsque le message est un message flash vide à la page charge, il ressemble à ceci:

When the message is empty flash message on page load it looks like this :

manière similaire, il ressemble à ceci lorsque le message est défini:

Similar way it looks like this message is set:

+0

Pourquoi '' ' .ctp''' l'affiche simplement à partir de la méthode du contrôleur. – aavrug

+0

J'ai besoin de conception personnalisée pour cela –

+0

Comment le faire ?? –

Répondre

1

Try this :

Créez vos éléments personnalisés avec Erreur Al ert, Succès Alerte, etc ...

/View/Elements/error_alert.ctp

<!-- Example Bootstrap Error Alert --> 
<div class="alert alert-danger"> 
    <button type="button" class="close" data-dismiss="alert">&times;</button> 
    <strong><?php echo $message ?></strong> 
</div> 

/View/Elements/success_alert.ctp

<!-- Example Bootstrap Succes Alert --> 
<div class="alert alert-success"> 
    <button type="button" class="close" data-dismiss="alert">&times;</button> 
    <strong><?php echo $message ?></strong> 
</div> 

Dans votre Vues ajoutez ceci, il n'apparaîtra que lorsque le message doit être affiché

<!-- It´s will work for all alert types (not only for error alerts) --> 
<div class="col-md-12"> 
    <?php echo $this->Session->flash(); ?> 
</div> 

si vous voulez utiliser un ajouter dans vos contrôleurs:

Pour le succès d'alerte

$this->Session->setFlash('Success message!', 'success_alert'); 

Pour toute erreur d'alerte

$this->Session->setFlash('Error message!', 'error_alert'); 
+0

Merci. C'est la bonne réponse. Mais j'ai remplacé le style par défaut. –