0

我正在使用 symfony 框架开发一个网站。现在我正在尝试将 recaptcha 集成到我的表单中,以便我使用这个EWZRecaptchaBundle。我几乎无法使用 1.* 版本(不是文档中提到的版本)安装它。我遵循了文档并从这里获取了密钥,并将其作为域:127.0.0.1,因为我在本地主机上。然后我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 Bundle 的版本有关吗?我怎样才能解决这个问题?

4

1 回答 1

1

尝试更改此行:

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

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

这个问题应该在版本 2.X 中修复

于 2015-04-13T14:20:53.030 回答