Symfony2.3 recaptcha не работает в моей форме

Я разрабатываю сайт с использованием фреймворка Symfony. Теперь я пытаюсь интегрировать recaptcha в мою форму, чтобы я использовал этот EWZRecaptchaBundle. Я вряд ли смог установить его, используя версию 1.* (не версию, упомянутую в документации). Я проследовал за документацией и получил ключи отсюда, и указал домен:127.0.0.1, так как я нахожусь на localhost. Затем я изменил свой formType.php файл как это:

use EWZ\Bundle\RecaptchaBundle\Validator\Constraints as Recaptcha;

class ContactType extends AbstractType
{
/**
* @Recaptcha\True
*/
public $recaptcha;
    /**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name')
        ->add('email')
        ->add('subject')
        ->add('message')
        ->add('recaptcha', 'ewz_recaptcha')
    ;
}

и добавил recaptcha в мой файл ветки так:

{% form_theme form 'EWZRecaptchaBundle:Form:ewz_recaptcha_widget.html.twig' %}

                      {{ form_widget(form.recaptcha, { 'attr': {
                            'options' : {
                                'theme': 'light',
                                'type': 'image'
                            },
                        } })
                     }}

Но когда я пытаюсь отобразить страницу, я получаю: The parameter "fr" must be defined.Глядя в подробности об ошибке я обнаружил:

at appProdDebugProjectContainer ->getParameter ('fr') 
in C:\wamp\www\fstn\vendor\excelwebzone\recaptcha-bundle\EWZ\Bundle\RecaptchaBundle\Form\Type\RecaptchaType.php at line 62  -
    $this->publicKey = $container->getParameter('ewz_recaptcha.public_key');
    $this->secure    = $container->getParameter('ewz_recaptcha.secure');
    $this->enabled   = $container->getParameter('ewz_recaptcha.enabled');
    $this->language  = $container->getParameter($container->getParameter('ewz_recaptcha.locale_key'));
}
/**

Это связано с версией пакета Recaptcha, который я установил? Как я могу это исправить?

1 ответ

Попробуйте изменить эту строку:

$ this-> language = $ container-> getParameter ($ container-> getParameter ('ewz_recaptcha.locale_key'));

на это: $this->language = $container->getParameter('ewz_recaptcha.locale_key');

Эта проблема должна быть исправлена ​​в версии 2.X

Другие вопросы по тегам