symfony2中的表单和电子邮件问题

时间:2013-03-29 08:54:49

标签: php symfony fosuserbundle

我点击提交按钮(POST请求操作)时执行以下代码:

public function earlySignupAction(Request $request)
{
    $user = new User();

    $form = $this->createFormBuilder($user)
        ->add('username', 'text')
        ->add('email', 'text')
        ->add('password', 'password')
        ->getForm();

    $form->bind($request);

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getEntityManager();
        $userRepository = $em->getRepository('SiteUserBundle:User');
        $userFoundByUsername = $userRepository->findOneBy(array('username' => $user->getUsername()));

        if ($userFoundByUsername) {
            $this->get('session')->getFlashBag()->add('notice', "Already registered!\n We will notify you soon!");
        } else {
            $session = $this->getRequest()->getSession();
            $session->set('user', $user);
        }

        return $this->redirect($this->generateUrl('SiteMainBundle_signup_additional_info'));
    }else{
        foreach($form->getErrors() as $key => $error){
            $this->get('session')->getFlashBag()->add('error', $error->getMessage());
        }    
    }

    return $this->redirect($this->generateUrl('ShopiousMainBundle_signup_fail'));
}

在树枝内我有以下内容:

<form id="registerMiniForm" class="clearfix"  action="{{ path('SiteMainBundle_early_signup') }}" method="post" {{ form_enctype(userForm) }} novalidate>
                        {{ form_widget(userForm.username, { 'attr': {'class': 'validate[required,minSize[3]] arvo-regular', 'placeholder': 'Username'} }) }}
                        {{ form_widget(userForm.password, { 'attr': {'class': 'validate[required] arvo-regular', 'placeholder': 'Password'} }) }}
                        {{ form_widget(userForm.email, { 'attr': {'class': 'validate[required,custom[email],ajax[ajaxEmailCall]] input', 'placeholder': 'Email'} }) }}
                        {{ form_rest(userForm) }}
                        <div class="register-wrap">
                            <input class="arvo-bold button" type="submit" value="Register" />
                        </div>
                    </form>

当我尝试打印$ user变量时,我看不到任何电子邮件,为什么?

class Site\UserBundle\Entity\User#367 (47) { protected $id => NULL protected $firstname => NULL protected $lastname => NULL protected $dni => NULL protected $birthday => NULL protected $website => NULL protected $biography => NULL protected $address => NULL protected $city => NULL protected $state => NULL protected $zipcode => NULL protected $phone => NULL protected $isFirstTimeAuthUsingFB => bool(true) protected $facebookId => NULL protected $profilePicture => NULL protected $shop => NULL protected $notification => NULL protected $shippingInfo => NULL protected $shoppingCart => NULL protected $paymentInfo => NULL private $followers => NULL private $following => NULL protected $invitedFriends => NULL protected $itemlikes => NULL protected $likeCount => int(0) protected $itemComments => NULL protected $commentCount => int(0) protected $shopTestimonials => NULL private $fullName => NULL protected $username => string(11) "alksdjasdla" protected $usernameCanonical => string(11) "alksdjasdla" protected $email => NULL protected $emailCanonical => NULL protected $enabled => bool(false) protected $salt => string(31) "jjkgwyjbnv488ccskk80wkc8gk4w080" protected $password => string(14) "lkasjdaslkdasd" protected $plainPassword => NULL protected $lastLogin => NULL protected $confirmationToken => NULL protected $passwordRequestedAt => NULL protected $groups => NULL protected $locked => bool(false) protected $expired => bool(false) protected $expiresAt => NULL protected $roles => NULL protected $credentialsExpired => bool(false) protected $credentialsExpireAt => NULL }

1 个答案:

答案 0 :(得分:0)

绑定属性

后,

$ user未持久化并刷新到数据库

persist()flush()来电添加到此行

 $session = $this->getRequest()->getSession();
 $session->set('user', $user) ;

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