Salut, je vient de me mettre à cakePHP suite aux derniers tutos et je rencontre un soucis au niveau des commentaires.
( Au passage j'utilise cakePHP 2 )
Donc je créer mon formulaire :
echo $this->Form->create('Comment',array('url'=>array('controller'=>'comments', 'action'=>'add')));
Qui emmène vers le controller Comments (je préfère créer un controller séparé qui gère ça).
CommentsController
function add(){
if(!empty($this->data)){
$this->Comment->set($this->data);
if($this->Comment->validates()){
$this->Comment->save($this->data);
$this->Session->setFlash('Message bien envoyé', 'default', array('class' => 'notification success'));
$this->redirect(array('controller'=>'posts', 'action'=>'view', $this->data'Comment']'post_id']));
}
else{
$this->Session->setFlash('Une erreur est survenue lors de l\'envoi de votre commentaire', 'default', array('class' => 'notification error'));
$this->redirect(array('controller'=>'posts', 'action'=>'view', $this->data'Comment']'post_id']));
}
}
}
Tout se passe bien, l'envoi et la validation du formulaire se passe bien, les setFlash fonctionnent très bien aussi.
Sauf qu'en cas d'erreur (le else donc) la redirection empêche les erreurs de s'afficher sur le formulaire (et d'auto-remplir les champs par le même occasion).
Ma question : Comment gérer les erreurs de la validation du formulaire avec une redirection (sachant que sans la redirection, il me demande une vue inexistante évidemment) ?