FOSUserBundle无需密码注册

时间:2013-05-27 08:48:36

标签: symfony registration fosuserbundle

我正在创建一个应用程序,访问者可以上传一些内容(仅限受邀人员)。最后,如果他们未登录,则会要求他们登录或创建用户。如果他们创建了新用户,我只想让他们填写他们的姓名和电子邮件。

将生成一个密码,并将邮件发送给用户,并提供链接以更改密码(如果他们想要尽可能低的话)。

我似乎无法从注册表单中删除密码字段。有人可以帮我吗。我创建了一个自定义表单类型,服务并注册了它。我还将自定义模板放在app / Resource文件夹等中。虽然我的自定义表单类型和模板正在使用,但密码仍然显示...

class RegistrationFormType extends BaseType {

  public function buildForm(FormBuilderInterface $builder, array $options) {
    parent::buildForm($builder, $options);

    // add your custom field
    $builder->add('username');
    $builder->add('email');
  }

  public function getName() {
    return 'val_user_registration';
  }

}

1 个答案:

答案 0 :(得分:2)

您不需要扩展您的父表单......在这种情况下,您最好不要这样做。

只需创建一个用户名/电子邮件表单,然后在自定义注册方法中自行创建新用户实体,然后将其保存到数据库中(不要忘记在新创建的用户上设置usernameCanonical属性) 。

FOSUserBundle在注册过程中调用了几个与密码相关的东西,这是你不需要的,在这种情况下不能轻易规避。

您可以在完成密码/电子邮件步骤后,将实体(使用新创建的密码)传递到FOSUserBundle的 UserManager 服务的更新方法