Здесь я пытаюсь заполнить контактную форму и отправить ее. Однако, когда я заполняю форму и нажимаю «Отправить», у меня есть это исключение:
UndefinedMethodException: Attempted to call method "bindRequest" on class "Symfony\Component\Form\Form" in /symfony/src/tuto/WelcomeBundle/Form/Handler/ContactHandler.php line 47.
Это содержимое ContactHandler.php:
namespace tuto \ WelcomeBundle \ Form \ Handler;
используйте Symfony \ Component \ Form \ Form; используйте Symfony \ Component \ HttpFoundation \ Request;
/** * The ContactHandler. * Use for manage your form submitions * * @author Abderrahim */ class ContactHandler { protected $request; protected $form; protected $mailer; /** * Initialize the handler with the form and the request * * @param Form $form * @param Request $request * @param $mailer * */ public function __construct(Form $form, Request $request, $mailer) { $this->form = $form; $this->request = $request; $this->mailer = $mailer; } /** * Process form * * @return boolean */ public function process() { // Check the method if ('POST' == $this->request->getMethod()) { // Bind value with form $this->form->bindRequest($this->request); $data = $this->form->getData(); $this->onSuccess($data); return true; } return false; } /** * Send mail on success * * @param array $data * */ protected function onSuccess($data) { $message = \Swift_Message::newInstance() ->setContentType('text/html') ->setSubject($data['subject']) ->setFrom($data['email']) ->setTo('xxxx@gmail.com') ->setBody($data['content']); $this->mailer->send($message); } }
Не могли бы вы мне помочь?
Вы должны заменить
$this->form->bindRequest($this->request);
С
$this->form->bind($this->request);
Поскольку bindRequest()
устарел.
Используйте $form->handleRequest($request);
для обработки представлений форм – http://symfony.com/doc/current/book/forms.html#handling-form-submissions
bindRequest
устарел и удален, вместо этого используйте метод submit
Вы должны заменить
$this->form->bindRequest($this->request);
с
$this->form->bind($this->request);
поскольку bindRequest()
устарел.