变量" captcha_code" Gregwar不存在

时间:2016-03-25 22:11:47

标签: forms symfony bundle captcha php-5.3

每个人都试图用Gregwar / CaptchaBundle为我的表单添加验证码,但我遇到了一个问题:

变量" captcha_code"当我付这部分代码时不存在:

=============================================== =========================

<div class="col-sm-8 col-sm-offset-2">
 {% block captcha_widget %}
 {% spaceless %}
<img src="{{ captcha_code }}" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />
 {{ form_row(form.captcha) }}
  {% endspaceless %}
 {% endblock %}
  </div>

<div class="col-sm-8 col-sm-offset-2"> {% block captcha_widget %} {% spaceless %} <img src="{{ captcha_code }}" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" /> {{ form_row(form.captcha) }} {% endspaceless %} {% endblock %} </div>

2 个答案:

答案 0 :(得分:1)

widget块中的变量form已包含验证码字段(不是整个表单),因此正确的方法是使用form_widget(form)而不是form_row(form.captcha)

{% block captcha_widget %}
{% spaceless %}
    <img src="{{ captcha_code }}" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />
    {{ form_widget(form) }}
{% endspaceless %}
{% endblock %}

答案 1 :(得分:0)

谢谢你,但我通过myselfe找出解决问题的最佳方法是

在我的表单构建器

中配置验证码字段
$builder->add('captcha', 'Gregwar\CaptchaBundle\Type\CaptchaType',array(
            'width' => 200,
            'height' => 50,
            'length' => 6,
            'quality' => 90,
            'distortion' => true,
            'background_color' => [115, 194, 251],
            'max_front_lines' => 0,
            'max_behind_lines' => 0,
            'attr' => array('class' => 'form-control',
            'rows'=> "6"
            )
        ));

在我的twig模板中只调用这一小部分代码:

<div class="col-sm-8 col-sm-offset-2">
{% block captcha_widget %}
    {% spaceless %}
       {{ form_row(form.captcha) }}
{% endspaceless %}

{% endblock %}
</div>

<div class="col-sm-8 col-sm-offset-2"> {% block captcha_widget %} {% spaceless %} {{ form_row(form.captcha) }} {% endspaceless %} {% endblock %} </div>