public function showAction() { $formComment = new CommentForm(); // On récupère l'objet Request $request = $this->getRequest(); // On vérifie si le formulaire a été posté if ($request->isPost()) { // On instancie notre modèle Post $comment = new Comment(); // Et on passe l'InputFilter de Post au formulaire $formComment->setInputFilter($comment->getInputFilter()); $formComment->setData($request->getPost()); // Si le formulaire est valide if ($formComment->isValid()) { // On prend les données du formulaire qui sont converti pour correspondre à notre modèle Post $comment->exchangeArray($formComment->getData()); var_dump($formComment->getData()); $this->getServiceLocator()->get('Zend\\Log')->info("Un commentaire ajouté !"); $this->sendMail($formComment->getData()); // On enregistre ces données dans la table Post // $this->getServiceLocator()->get('Application\Service\CommentService')->saveComment($comment); // Puis on redirige sur la page d'accueil. return $this->redirect()->toUrl('/'); } // Si le formulaire n'est pas valide, on reste sur la page et les erreurs apparaissent } $post = $this->getServiceLocator()->get('Application\\Service\\PostService')->getById($this->params('id')); $post->category = $this->getServiceLocator()->get('Application\\Service\\CategoryService')->getById($post->category_id); $post->author = $this->getServiceLocator()->get('Application\\Service\\UserService')->getById($post->author); $post->comments = $this->getServiceLocator()->get('Application\\Service\\CommentService')->getByPostId($post->post_id); if (is_array($post->tags)) { $post->tags = $this->getServiceLocator()->get('Application\\Service\\TagService')->getByArrayId($post->tags); } $formComment->setData(array("post_id" => $post->post_id)); return new ViewModel(array('post' => $post, 'form' => $formComment, 'post_id' => $this->params('id'), 'flashMessages' => $this->flashMessenger()->getMessages())); }
public function addAction() { $formComment = new CommentForm(); // On récupère l'objet Request $request = $this->getRequest(); // On vérifie si le formulaire a été posté if ($request->isPost()) { // On instancie notre modèle Comment $comment = new Comment(); // Et on passe l'InputFilter de Comment au formulaire $formComment->setInputFilter($comment->getInputFilter()); $formComment->setData($request->getPost()); // Si le formulaire est valide if ($formComment->isValid()) { // On prend les données du formulaire qui sont converti pour correspondre à notre modèle Comment $comment->exchangeArray($formComment->getData()); $destinataire = $formComment->getData()['email']; $this->sendMail($formComment->getData()['email']); // On enregistre ces données dans la table Comment $this->getServiceLocator()->get('Application\\Service\\CommentService')->saveComment($comment); $this->getServiceLocator()->get('Zend\\Log')->info("Un commentaire a été ajoutée"); $this->flashMessenger()->addMessage(array('success' => "Votre commentaire a été ajoutée")); // Puis on redirige sur la page d'accueil. return $this->redirect()->toUrl($this->getRequest()->getServer('HTTP_REFERER')); } else { // Si le formulaire n'est pas valide, on reste sur la page et les erreurs apparaissent foreach ($formComment->getMessages() as $messageId => $messages) { foreach ($messages as $message) { $this->getServiceLocator()->get('Zend\\Log')->err("Validation failure '{$messageId}': {$message}"); $this->flashMessenger()->addMessage(array('error' => "Validation failure '{$messageId}': {$message}")); } } } } return new ViewModel(array('form' => $formComment, 'flashMessages' => $this->flashMessenger()->getMessages())); }