我正在创建一个应用程序,访问者可以在其中上传一些东西(仅限受邀者)。最后,如果他们未登录,则会要求他们登录或创建用户。如果他们创建了一个新用户,我只想让他们填写他们的姓名和电子邮件。
将生成一个密码,并向用户发送一封邮件,其中包含更改密码的链接(如果他们愿意的话)(只是为了使程序尽可能低级)。
我似乎无法从注册表中删除密码字段。有人可以帮我吗。我创建了一个自定义表单类型、服务并注册了它。我还将自定义模板放在 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';
}
}
最佳答案
你不需要扩展你的父表单......在这种情况下你最好不要这样做。
只需创建一个用户名/电子邮件表单,然后自己在 中创建新的用户实体。自定义注册方式然后将其持久化到数据库中(不要忘记在新创建的 User 上设置 usernameCanonical 属性)。
FOSUserBundle 在注册过程中调用了几个与密码相关的东西,在这种情况下,您不需要也不能轻易规避这些东西。
您可以将实体(使用新创建的密码)传递给 更新方法 FOSUserBundle 的 用户管理器 完成密码/电子邮件步骤后的服务。
关于symfony - FOSUserBundle 无需密码注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16769477/