Bonjour,
j'ai une fonction au sein de mon controller, cette fonction discute deux cas, et selon le resultat de la discution on doit rediriger vers une vue donné avec un message donné ,
c'est pourcela j'ai utiliser le code suivant au niveau du controller

 if ($boll) {
           // $this->Session->setFlash('The employee has been saved '.$file['name'].' Oui');
          $message="L'article a été bien enrigstré avec success";
           $message='<div class="alert alert-success">'.$message.'</div>';
            $this->set(compact('message'));
            $this->redirect(array('controller'=>'posts','action' => 'index'));
        } else {
           // $this->Session->setFlash('The employee could not be saved. Please, try again.');
          $message="Echec lors de l'enregistrement";
           $message='<div class="alert">'.$message.'</div>';
           $this->set(compact('message'));
        }

et au niveau de la vue index

<?php if(isset($message)) : ?>
<?php echo $message; ?>
<?php endif ?>

mais rien n'est pas passé...... y'a t il une erreur
?
merci à l'avance

4 réponses


Bonjour à tous,

Je voudrais m'expliquer , je veux pouvoir styliser session->flash pour pouvoir benificer de style de bootstrap.

Merci Gynidark pour le lien,
mais je n'ai pas vu sa relation avec ma question, certainement il rèpond à ma question.
Cordialement

Bonjour,
J'ai utiliser session pour pouvoir passer le message du controller à la vue, avec le code suivant :

 $this->Session->write('message', $message);

et au nivau de la vu, on m'affiche l'erreur suivante :

Error: Call to a member function write() on a non-object
File: C:\wamp\www\cakephpboot\app\Controller\PostsController.php
Line: 91

Cordialement

Bonsoir.
L'erreur te dit tout simplement que tu utilises un objet qui n'est pas connu/chargé.
Penses à charger le composant Session dans ton AppController :

public $components = [/** tes autres composants **/, 'Session'];

Sinon, Gynidark a répondu à ta question, tu peux créer des templates pour les messages de sessions, sauf qu'il s'est trompé de version de CakePHP, regardes plutôt ici : Création de messages de notification.