2013-03-12 56 views
1

Gregwar驗證碼錯誤我安裝GregwarCaptcha束和在控制器在模板在symfony中2.1.7

{% form_theme form 'MyIndexBundle:Default:captcha.html.twig' %} 
<form action="" method="post"> 
    ........ 
    {{ form_widget(form.captcha) }} 
    ....... 
    </form> 

添加以下代碼

$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() 

        )); 

下面的代碼和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,directily我得到captcah碼不存在...

+0

是不是遞歸問題?在應該呈現小部件的塊中,您將窗體渲染爲參數來調用'form_widget'。 – 2013-03-13 21:45:53

回答

1

我管理使用gregwar驗證碼使用這樣的:

首先,添加new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),AppKernel.php

然後添加folowwing代碼上config.yml

gregwar_captcha: 
    width: 200 
    height: 50 
    length: 6 

然後,添加->add('captcha', 'captcha')$builder

最後,在樹枝模板中添加{{ form_widget(form.captcha) }}

所以我沒有用form_theme既不captcha.html.twig

,這是工作得很好。

+0

我剛剛嘗試過主題。 '{%form_theme form'with':: captcha.html.twig'%}''這也行得通。我注意到,在你的代碼中,當使用'form_theme'時,你忘記了「with」。另一個區別是我沒有把''''''''''''''''''''''''''''''''''''''''''''''。希望這會幫助你。 – emottet 2013-04-04 10:31:59