symfony 2.1.7中的Gregwar Captcha错误

时间:2013-03-12 04:10:40

标签: php captcha symfony-2.1

我安装了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不存在......

1 个答案:

答案 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

这很好用。