我正在使用FOSUserBundle,如何添加必须选中才能让用户创建帐户的复选框。
FOS是否已经满足了这一点,也许我只需要在配置文件中添加一行,或者我可能需要更改一些控制器。
我添加了一个指向图片的链接,以便更好地解释我需要做什么

这一点真的很重要,因为用户在注册之前必须接受条款和条件。
发布于 2014-08-21 17:59:07
你可以在你的实体中添加简单的à字段,选项«mapped»设置为false,因为它不会添加到你的实体中。
$builder
->add('cgu', 'checkbox', array(
'label' => 'Je reconnais…',
'required' => true,
'mapped' => false
))
;发布于 2014-08-21 18:11:21
在表单中,您必须使用class:
Symfony\Component\Validator\Constraints\True;如下所示:
<?php
namespace Project\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints\True;
use FOS\UserBundle\Form\Type\RegistrationFormType;
class MyUserRegistrationType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('user', new RegistrationFormType())
->add('cgu', 'checkbox', array(
'label' => 'Your label',
'required' => true
))
->add('t_and_c', 'checkbox', array(
'property_path' => false,
'constraints' => new True(array('message' => 'Your Confirmation Message','groups' => 'Registration')),
))
;
}
/**
* @return string
*/
public function getName()
{
return 'project_userbundle_user';
}
}发布于 2014-08-21 17:26:56
我看到了两种解决方案,第一种是遗留从FOSUserBundle表单创建遗留。但在验证用户实体时,您可能会遇到问题。例如,我建议您创建一个表单MyUserRegistrationType.php并添加FOSUserBundle表单和复选框,如下所示:
<?php
namespace Project\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use FOS\UserBundle\Form\Type\RegistrationFormType;
class MyUserRegistrationType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('user', new RegistrationFormType())
->add('cgu', 'checkbox', array(
'label' => 'Your label',
'required' => true
))
;
}
/**
* @return string
*/
public function getName()
{
return 'project_userbundle_user';
}
}https://stackoverflow.com/questions/25422405
复制相似问题