27-05-2009, 10:34 AM
Dans CakePHP, les contrôleurs ont une méthode baptisée flash(string $message, string $url, integer $pause) qui génère (à la place du rendu habituel) une page qui contient un message. Ce message est un lien vers l'URL qu'on indique. On peut également spécifier une durée en secondes comme troisième argument, la page contiendra alors une redirection par meta vers l'URL demandée.
Dans Ruby on Rails, les contrôleurs proposent également méthode flash, qui cette fois utilise une session. La particularité de cet espace de session est qu'elle est vidée à chaque requête.
Si la procédure se passe bien, dans Ruby on Rails, on arrivera donc sur la page qui montre le profil de l'utilisateur crée (car Ruby on Rails préconise les architectures RESTful), on aura donc :
Si on actualise ou que l'on change de page, le message disparaît.
Désolé d'être moins complet sur l'exemple de CakePHP, mais j'ai un peu oublié. ^^
Sephi-Chan
/* On utilise cette potion dans un contrôleur. */
$this->flash(
"Le message a bien été édité.",
"/posts/",
3
);
Dans Ruby on Rails, les contrôleurs proposent également méthode flash, qui cette fois utilise une session. La particularité de cet espace de session est qu'elle est vidée à chaque requête.
# Dans le contrôleur.
if @user.save
flash[:notice] = "Votre compte a bien été crée."
redirect_to @user
else
flash[:error] = "Une erreur est survenue."
render :action => "new"
end
# Dans la vue (dans mon cas, le layout).
- if flash[:error]
%p.message.error= flash[:error]
- if flash[:notice]
%p.message.notice= flash[:notice]
Si la procédure se passe bien, dans Ruby on Rails, on arrivera donc sur la page qui montre le profil de l'utilisateur crée (car Ruby on Rails préconise les architectures RESTful), on aura donc :
<p class="message notice">Votre compte a bien été crée.</p>
Si on actualise ou que l'on change de page, le message disparaît.
Désolé d'être moins complet sur l'exemple de CakePHP, mais j'ai un peu oublié. ^^
Sephi-Chan