FOSUserBundle, согласно документации, не может восстановить существующего пользователя, который он создал второй назад, и возвращает NULL.
config.yml для fos_user:
fos_user:
db_driver: mongodb
firewall_name: main
user_class: SignalsPlatform\SpotApiBundle\Document\User
use_listener: false
Модель пользователя (по умолчанию):
<?php namespace SignalsPlatform\SpotApiBundle\Document;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document(
* db="signals",
* collection="User"
* )
*/
class User extends BaseUser {
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
}
RegisterController:
/**
* @Route("/user/create", name="user_create")
* @param Request $request
* @return Response
*/
public function createAction(Request $request)
{
/** @var \FOS\UserBundle\Doctrine\UserManager $userManager */
$userManager = $this->container->get('fos_user.user_manager');
$foundUser = $userManager->findUserByEmail($request->request->getAlpha('email'));
var_dump($foundUser); // returns NULL
MongoDB найти результат:
> use signals
switched to db signals
db.User.find({адрес электронной почты:'[email protected] '})
{ "_id" : ObjectId("54b3aba3d700e9ab198b4568"), "usernameCanonical" : "lojixyc", "email" : "[email protected]", "emailCanonical" : "[email protected]", "enabled" : true, "salt" : "l4vsg8j59u884w8w0okwo0o4ogscssw", "password" : BinData(5,"UGEkJHcwcmQh"), "locked" : false, "expired" : false, "roles" : [ ], "credentialsExpired" : false, "firstName" : "Alexis", "lastName" : "Lancaster", "country" : "IL", "phone" : "(+972) 695898", "birthDate" : "8-8-1930", "userName" : "lojixyc", "currency" : "USD", "createdAt" : ISODate("2015-01-12T11:10:27Z") }
Если какая-либо информация отсутствует, сообщите мне. Этот фрагмент кода по умолчанию предполагает найти пользователя.
Похоже на
$request-> request-> getAlpha ( 'электронная почта')
Зачищал специальные символы электронной почты, заменяя
$request-> request-> Get ( 'электронная почта')
Исправлена проблема.