Bonjour,
Débutant en cakePHP, je suis le Cookbook et j'ai ce code :
public function add() {
if($this->request->is('post')) {
$this->Post->create();
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your post.');
}
}
}
Et la vue associée :
<h1>Add Post</h1>
<?php
echo $this->Form->create('Post');
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Save Post');
?>
Malheureusement, quand je clique sur save, je n'ai pas de message 'Your post has been saved.' qui s'affiche.
La note du book précise : 'You need to include the SessionComponent - and SessionHelper - in any controller where you will
use it. If necessary, include it in your AppController.'
Mais ne précise pas comment le faire (et je ne trouve pas).
J'ai ajouté :
class AppController extends Controller {
public $components = array('Session');
public $helpers = array('Html', 'Session');
}
Merci de m'éclairer sur ce "léger" détail :)
Oui donc c'est bon. Tes données s'enregistrent dans ta base ou non ? C'est juste le problème du message d'enregistrement ?
Mets ceci dans ta vue :
// Dans la vue.
echo $this->Session->flash();
En fait, tu fais ton message dans ton controller, et le echo te permet de l'ajouter sur ta page
C'est comme si tu avais un haut.php et que tu faisais pas ton include dans ton index.php, il n’apparaîtrait pas :')
J'espère que j'ai donné un bon exemple, sinon, on va me taper sur les doigts :')
"You need to include the SessionComponent - and SessionHelper - in any controller where you will
use it. If necessary, include it in your AppController."
C'est une phrase d'erreur où une phrase que tu as lu dans la doc ?
Dans mon appcont j'ai :
var $components =array ('Auth','Session');
Bonne continuation.
La phrase est une Note (une remarque) mais je n'ai pas plus d'explications ni de renvoie plus loin.
Si je mets ta ligne de code à la place, je n'ai toujours rien qui s'affiche quand je save le post. Mais un message 'flash' est bien sensé apparaître, non?
Montre nous ton controller, ta vue, ton model =) fais un debug. (tu as mis le debug en marche dans ton core ???)
wait... tu as editer ton premier post :p
Dans app/config/core.php (est-ce le bon fichier dont tu parlais?), il y a la ligne :
Configure::write('debug', 2);
Je suppose donc que le debug est actif. Mais je place le debug où ensuite? Autour de mes Sesssion->setFlash ?
Ah merci !
Je pensais que c'était un message de type pop-up mais c'est un texte statique sur la page (enfin ça marche et c'est super !).
Sais-tu d'où vient le problème malgré tout? (Cela m'intrigue j'avoue)
Ce qui m'intrigue c'est, pourquoi dans le controller :
$this->Session->setFlash('Your post has been saved.');
Ne fait rien tandis que si on met l'équivalent dans la vue ça marche.
(Peut-être je ne saisis pas vraiment où ça doit s'afficher...)