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" が存在しません」というエラーが表示されます。... captcha.html.twig を使用すると、直接 captcah-code does not exist が表示されます...

4

1 に答える 1

1

私は次のようにそれを使用してgregwar captchaを使用して管理します:

まず、あなたに追加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

そして、これはうまく機能しています。

于 2013-04-04T09:37:55.750 に答える