Symfony 2 Gregwar captcha_code не существует, исключение - PullRequest
0 голосов
/ 22 марта 2012

Я хочу добавить Gregwar Bundle (капчу) в мой проект. Я сделал все шаги, показанные здесь https://github.com/Gregwar/CaptchaBundle/blob/master/README.md

Но выдается исключение "Переменная" captcha_code "не существует". Что-то не так с темой формы?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2012

использовать тег form_theme

пример:

index.html.twig - шаблон с вашей формой, captcha.html.twig - шаблон с вашей капчей

index.html.twig content:

{% form_theme form 'YourBundle::captcha.html.twig' %}     

<form action="" method="post">
...
{{ form_widget(form.captcha) }}
...
</form>

captcha.html.twig content:

{% 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 %}
0 голосов
/ 20 января 2016

Блок captcha_widget должен быть вне любого другого блока, например:

{% block captcha_widget %}
{% set label = label|default('')|trim %}

{% if is_human %}
    -
{% else %}
    {% spaceless %}
        <div class="image">
            <img id="{{ image_id }}" src="{{ captcha_code }}" alt="" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />

            {% if reload %}
                <script type="text/javascript">
                    function reload_{{ image_id }}() {
                        var img = document.getElementById('{{ image_id }}');
                        img.src = '{{ captcha_code }}?n=' + (new Date()).getTime();
                    }
                </script>
                <a class="captcha_reload" onclick="reload_{{ image_id }}(); return false;" href="#">{{ 'Renew'|trans({}, 'gregwar_captcha') }}</a>
            {% endif %}
        </div>

        <div class="">{{ label }}{{ label ? '* :': ''}}{{ form_widget(form) }}</div>
    {% endspaceless %}
{% endif %}

{% endblock captcha_widget%}

{% form_theme form2 _self%}

{% block content%} ... {% endblock%}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...