我安装了GregwarCaptcha软件包,并在控制器中添加以下代码
$form = $this->createFormBuilder()
->add('captcha', 'captcha', array(
'width' => 200,
'height' => 50,
'length' => 6,
));
return $this->render('MyIndexBundle:Default:contact.html.twig',array(
'form' => $form->createView()
));
模板中的以下代码
{% form_theme form 'MyIndexBundle:Default:captcha.html.twig' %}
<form action="" method="post">
........
{{ form_widget(form.captcha) }}
.......
</form>
和captcha.html.twig是
{% block captcha_widget %}
{% spaceless %}
<img src="{{ captcha_code }}" alt="" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />
...
{{ form_widget(form, {'attr': { 'autocapitalize': 'off','autocorrect': 'off' }}) }}
...
{% endspaceless %}
{% endblock %}
我得到“方法”验证码“对象”Symfony \ Component \ Form \ FormView“不存在”错误。 ...如果我使用captcha.html.twig,直截了当地我得到了captcah-code不存在......
答案 0 :(得分:1)
我使用gregwar验证码管理如下:
首先,将new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
添加到您的AppKernel.php
然后在config.yml
gregwar_captcha:
width: 200
height: 50
length: 6
然后,将->add('captcha', 'captcha')
添加到您的$builder
最后,在树枝模板中添加{{ form_widget(form.captcha) }}
。
所以我没有使用form_theme
captcha.html.twig
这很好用。