Ajax FosUser,手动创建用户

Ajax FosUser,手动创建用户,ajax,symfony,fosuserbundle,Ajax,Symfony,Fosuserbundle,对于我的应用程序中的特殊情况,我需要从ajax请求手动注册用户 因此,首先我用ajax将所有数据发送给我的控制器:firstname、lastname、mail、password等等 现在,在此之后,我只需在控制器中执行以下操作: $firstname = $request->get('firstname'); $lastname = $request->get('lastname'); $mail = $request->get('mail');

对于我的应用程序中的特殊情况,我需要从ajax请求手动注册用户

因此,首先我用ajax将所有数据发送给我的控制器:
firstname、lastname、mail、password等等

现在,在此之后,我只需在控制器中执行以下操作:

    $firstname = $request->get('firstname');
    $lastname = $request->get('lastname');
    $mail = $request->get('mail');
    $password = $request->get('password');

    $userManager = $this->get('fos_user.user_manager');
    $user = $userManager->createUser();
    $user->setUsername($firstname.$lastname);
    $user->setPlainPassword($password);
    $user->setEmail($mail);
    $user->setFirstname($firstname);
    $user->setLastname($lastname);

    $userManager->updateUser($user);
但是我的问题是,如何在
updateUser()之前验证用户?我需要手动检查此电子邮件/用户名是否已存在


我怎样才能用更好的方法做到这一点呢?

您可以在
updateUser
之前使用
findUserByEmail
方法检查电子邮件是否存在:

$user = $this->get('fos_user.user_manager')->findUserByEmail($mail);