Bonjour,
Je cherche à faire un formulaire de contact sous SF2, sans entité, et je galère depuis un moment, la doc et les différents tutos que je peux suivre prêtant à confusion avec des méthodes et syntaxes pas toujours à jour par rapport à la version 2.4.1. que j'utilise.
Je rencontre l'erreur suivante dans mon handler :
Je comprends bien l'erreur mais ne voit pas avec quel objet/instance appeler la méthode renderView, le paramètre $data passé en argument étant un tableau.FatalErrorException: Error: Call to undefined method Open\OpcBundle\Form\Handler\ContactHandler::renderView() in C:\Program Files\wamp\www\sf2\src\Open\OpcBundle\Form\Handler\ContactHandler.php line 75
Code de mon handler :
Merci pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <?php // src/Open/OpcBundle/Form/Handler/Handler.php namespace Open\OpcBundle\Form\Handler; use Symfony\Component\Form\Form; use Symfony\Component\HttpFoundation\Request; class ContactHandler { protected $request; protected $form; protected $mailer; public function __construct(Form $form, Request $request, $mailer) { $this->form = $form; $this->request = $request; $this->mailer = $mailer; } public function process() { if ('POST' == $this->request->getMethod()) { // Bind value with form // $this->form->bindRequest($this->request); $this->form->handleRequest($this->request); $data = $this->form->getData(); $this->onSuccess($data); return true; } return false; } protected function onSuccess($data) { $message = \Swift_Message::newInstance() ->setContentType('text/html') ->setSubject($data['sujet']) ->setFrom($data['courriel']) ->setTo('moi@gmail.com') ->setBody($this->renderView('OpcOpenBundle:Opc:Mails/contact.html.twig', array('ip' => $request->getClientIp(), 'nom' => $data['nom'], 'msg' => $data['msg']) ) ); $this->get('mailer')->send($message); $request->getSession()->getFlash()->add('success', 'Your email has been sent! Thanks!'); return $this->redirect($this->generateUrl('contact')); } } // -- classe
PS : pour ceux qui en auraient noté l'absence, je n'ai pas encore attaqué la validation.
Partager