Example #1
0
 public function editAction()
 {
     $viewModel = new ViewModel();
     if (!$this->getAuthService()->getIdentity()) {
         return $this->redirect()->toRoute('home');
     }
     $username = $this->getAuthService()->getIdentity()->getUserName();
     $registerForm = new RegisterForm();
     $registerForm->remove('captcha')->remove('password')->remove('re_password');
     $registerForm->get('submit')->setValue('修改資料');
     $registerForm->get('username')->setAttribute('readonly', true);
     $accountFilter = new AccountFIlter();
     $accountFilter->remove('password')->remove('re_password');
     $registerForm->setInputFilter($accountFilter);
     $em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
     $user = $em->getRepository('Base\\Entity\\User')->findOneBy(array('username' => $username));
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         $registerForm->setData($data);
         if ($registerForm->isValid()) {
             $user->setFirstName($registerForm->get('first_name')->getValue());
             $user->setLastName($registerForm->get('last_name')->getValue());
             //echo $registerForm->get('birthday')->getValue(); exit;
             $birthday = new \DateTime($registerForm->get('birthday')->getValue());
             $user->setBirthday($birthday);
             $user->setSex($registerForm->get('sex')->getValue());
             $user->setEmail($registerForm->get('email')->getValue());
             $em->persist($user);
             $em->flush();
             $this->flashMessenger()->addMessage('修改完成');
             $this->redirect()->toRoute('user/default', array('controller' => 'set', 'action' => 'edit'));
         }
     }
     $registerForm->bind($user);
     $viewModel->setVariable('form', $registerForm);
     return $viewModel;
 }