首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为FOSUserbundle注册添加确认复选框

如何为FOSUserbundle注册添加确认复选框
EN

Stack Overflow用户
提问于 2014-08-21 17:10:17
回答 4查看 2.1K关注 0票数 2

我正在使用FOSUserBundle,如何添加必须选中才能让用户创建帐户的复选框。

FOS是否已经满足了这一点,也许我只需要在配置文件中添加一行,或者我可能需要更改一些控制器。

我添加了一个指向图片的链接,以便更好地解释我需要做什么

这一点真的很重要,因为用户在注册之前必须接受条款和条件。

EN

回答 4

Stack Overflow用户

发布于 2014-08-21 17:59:07

你可以在你的实体中添加简单的à字段,选项«mapped»设置为false,因为它不会添加到你的实体中。

代码语言:javascript
复制
$builder
    ->add('cgu', 'checkbox', array(
        'label'     => 'Je reconnais…',
        'required'  => true,
        'mapped' => false
    ))
;
票数 2
EN

Stack Overflow用户

发布于 2014-08-21 18:11:21

在表单中,您必须使用class:

代码语言:javascript
复制
         Symfony\Component\Validator\Constraints\True;

如下所示:

代码语言:javascript
复制
        <?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';
}
}
票数 1
EN

Stack Overflow用户

发布于 2014-08-21 17:26:56

我看到了两种解决方案,第一种是遗留从FOSUserBundle表单创建遗留。但在验证用户实体时,您可能会遇到问题。例如,我建议您创建一个表单MyUserRegistrationType.php并添加FOSUserBundle表单和复选框,如下所示:

代码语言:javascript
复制
<?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';
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25422405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档