我試圖將EWZRecaptcha添加到我的註冊表單中。 我的註冊表單生成器看起來是這樣的:Symfony2將reCaptcha字段添加到註冊表格中
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('username', 'text')
->add('password')
->add('recaptcha', 'ewz_recaptcha', array('property_path' => false));
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\MyBundle\Entity\User',
);
}
現在,我怎麼能添加的ReCaptcha約束來驗證碼字段?我試圖將它添加到validation.yml:
namespaces:
RecaptchaBundle: EWZ\Bundle\RecaptchaBundle\Validator\Constraints\
Acme\MyBundle\Entity\User:
...
recaptcha:
- "RecaptchaBundle:True": ~
,但我得到Property recaptcha does not exists in class Acme\MyBundle\Entity\User
錯誤。
如果我從驗證碼字段的選項中刪除array('property_path' => false)
,我得到的錯誤:
Neither property "recaptcha" nor method "getRecaptcha()" nor method "isRecaptcha()"
exists in class "Acme\MyBundle\Entity\User"
任何想法如何解決呢? :)
偉大的文章,謝謝! – tamir 2012-02-08 17:28:39
由於Symfony 2.1應該使用'mapped = false'而不是'property_path = false',請參閱http://symfony.com/doc/current/reference/forms/types/form.html#property-path和http: //symfony.com/doc/current/reference/forms/types/form.html#mapped。 – 2015-07-11 12:07:05