2014-07-16 17 views
-2

我试图让“注册确认”我的应用程序的工作,但不能。因为我需要设置配置文件等等,这是我的用户的方法save如何某些字段:无法获取“注册确认”工作在FOSUserBundle在我自己的函数

公共职能saveAction(请求$要求) {$ EM = $这个 - > getDoctrine() - > getManager ();

/** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */ 
    $userManager = $this->container->get('fos_user.user_manager'); 
    /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */ 
    $dispatcher = $this->container->get('event_dispatcher'); 

    $user = $userManager->createUser(); 

    $event = new GetResponseUserEvent($user, $request); 
    $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event); 

    if (null !== $event->getResponse()) { 
     return $event->getResponse(); 
    } 

    $entityProfile = new SysPerfil(); 
    $formProfile = $this->createForm(new PerfilType(), $entityProfile); 
    $formProfile->handleRequest($request); 

    $user_data = $request->get('user_profile'); 

    if ($formProfile->isValid()) { 
     $event = new FormEvent($formProfile, $request); 
     $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event); 

     $role = $request->get('user_profile')['roleType']; 

     $user->setUsername($user_data['rif']); 
     $user->setEmail($user_data['user']['email']); 
     $user->setPlainPassword($user_data['user']['password']); 

     if ($role === "O") { 
      $user->addRole("ROLE_OPERADOR"); 
     } 
     elseif ($role === "CH") { 
      $user->addRole("ROLE_CENTRO_HIPICO"); 
     } 

     $userManager->updateUser($user); 

     $entityProfile->setUser($user); 
     $em->persist($entityProfile); 
     $em->flush(); 

     $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request)); 

     return $this->redirect($this->generateUrl('login')); 
    } 
    else { 
     $errors = $this->getFormErrors($formProfile); 
    } 

    return new JsonResponse(array('status' => true, 'errors' => $errors)); 
} 

而这正是我在config.yml文件中配置:

# FOSUserBundle 
fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: Sunahip\UserBundle\Entity\SysUsuario 
    group: 
     group_class: Sunahip\UserBundle\Entity\SysGrupos 
    registration: 
     confirmation: 
      enabled: true 

但我发现了这个错误:

Attempted to call method "setEnabled" on class "UserBundle\Entity\SysPerfil" in /var/www /html/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/EventListener /EmailConfirmationListener.php line 50.

我做了什么错?

回答

0

我发现问题所在,所以没关系,我的实体配置不好,我做的不好,反正谢谢