Symfony1 没有用户名?sfDoctrineGuard/Apply

Symfony1 没有用户名?sfDoctrineGuard/Apply,symfony1,sfdoctrineguard,Symfony1,Sfdoctrineguard,我使用的是sfdoctrineaplyplugin,注册表需要用户名-删除此字段的最佳方式是什么 由于sfDoctrineGuardPlugin允许通过用户名或电子邮件地址登录,我希望我的应用程序只使用电子邮件地址来识别用户。使在注册中指定用户名超出要求 我是否需要在视图中隐藏此字段,然后在提交时生成一个用户名,该用户名被存储以满足插件的要求,但用户永远不需要查看或使用?产生这个的最好方法是什么?电子邮件地址中@前面的位 非常感谢您事先提供的帮助。我想您可以从这里开始。 你可以这样做: clas

我使用的是sfdoctrineaplyplugin,注册表需要用户名-删除此字段的最佳方式是什么

由于sfDoctrineGuardPlugin允许通过用户名或电子邮件地址登录,我希望我的应用程序只使用电子邮件地址来识别用户。使在注册中指定用户名超出要求

我是否需要在视图中隐藏此字段,然后在提交时生成一个用户名,该用户名被存储以满足插件的要求,但用户永远不需要查看或使用?产生这个的最好方法是什么?电子邮件地址中@前面的位


非常感谢您事先提供的帮助。

我想您可以从这里开始。 你可以这样做:

class sfGuardUserForm extends PluginsfGuardUserForm
{
  protected function doUpdateObject($values)
  {
    $email_array = explode($values['email']);
    $this->getObject()->set('username', $email_array[0]);

    parent::doUpdateObject($values);
  }
}

谢谢你的回答。我了解如何根据电子邮件地址生成用户名。我要问的问题是,这是否是最好的方法。这个用户名可能存在,所以我也要做额外的检查。你成功地使用了这个方法吗?也许覆盖notnull是更好的方法?对不起,我从来没有使用过这个方法。一个解决方案是,如您所说,覆盖notnull,另一个解决方案是将电子邮件保存在用户名字段中。好的,我可能会看看notnull方法。谢谢你的帮助