original_string: public function formAction()
      {
          $isNew     = 'new' == $this->params('mode');
          $form      = $this->formManager->get('Auth/Group', array('mode' => $this->params('mode')));
          $repository = $this->repositories->get('Auth/Group');
          
          if ($isNew) {
              $group = new \Auth\Entity\Group();
          } else {
              if ($this->getRequest()->isPost()) {
                  $data = $this->params()->fromPost('data');
                  $id   = isset($data['id']) ? $data['id'] : false;
              } else {
                  $id   = $this->params()->fromQuery('id', false);
              }
              if (!$id) {
                  throw new \RuntimeException('No id.');
              }
              $group = $repository->find($id);
          }
          
          $form->bind($group);
          if ($this->getRequest()->isPost()) {
              $form->setData($_POST);
              $isOk      = $form->isValid();
              $isUsersOk = !empty($group->users);
               
              if ($isOk) {
                  // We have to check here, if there are any users provided
                  // as InputFilter does not allow "required" to be set on fieldsets.
                  if ($isUsersOk) {
                      if ($isNew) {
                          $user    = $this->auth()->getUser();
                          $group->setOwner($user);
                          $groups  = $user->getGroups();
                          $message = /*@translate*/ 'Group created';
                          $groups->add($group);
                      } else {
                          $message = /*@translate*/ 'Group updated';
                      }
                      
                      $this->notification()->success($message);
                      return $this->redirect()->toRoute('lang/my-groups');
                  }
              }
              if (!$isUsersOk) {
                  $form->get('data')->get('users')->setNoUsersError(true);
              }
              $this->notification()->error(/*@translate*/ 'Changes not saved.');
          }
          
          return array(
              'form' => $form,
              'isNew' => $isNew,
          );
      }
code: public function formAction()
      {
          $isNew     = 'new' == $this->params('mode');
          $form      = $this->formManager->get('Auth/Group', array('mode' => $this->params('mode')));
          $repository = $this->repositories->get('Auth/Group');
          
          if ($isNew) {
              $group = new \Auth\Entity\Group();
          } else {
              if ($this->getRequest()->isPost()) {
                  $data = $this->params()->fromPost('data');
                  $id   = isset($data['id']) ? $data['id'] : false;
              } else {
                  $id   = $this->params()->fromQuery('id', false);
              }
              if (!$id) {
                  throw new \RuntimeException('No id.');
              }
              $group = $repository->find($id);
          }
          
          $form->bind($group);
          if ($this->getRequest()->isPost()) {
              $form->setData($_POST);
              $isOk      = $form->isValid();
              $isUsersOk = !empty($group->users);
               
              if ($isOk) {
                  // We have to check here, if there are any users provided
                  // as InputFilter does not allow "required" to be set on fieldsets.
                  if ($isUsersOk) {
                      if ($isNew) {
                          $user    = $this->auth()->getUser();
                          $group->setOwner($user);
                          $groups  = $user->getGroups();
                          $message = /*@translate*/ 'Group created';
                          $groups->add($group);
                      } else {
                          $message = /*@translate*/ 'Group updated';
                      }
                      
                      $this->notification()->success($message);
                      return $this->redirect()->toRoute('lang/my-groups');
                  }
              }
              if (!$isUsersOk) {
                  $form->get('data')->get('users')->setNoUsersError(true);
              }
              $this->notification()->error(/*@translate*/ 'Changes not saved.');
          }
          
          return array(
              'form' => $form,
              'isNew' => $isNew,
          );
      }
code_tokens: public function formAction ( ) { $ isNew = 'new' == $ this -> params ( 'mode' ) ; $ form = $ this -> formManager -> get ( 'Auth/Group' , array ( 'mode' => $ this -> params ( 'mode' ) ) ) ; $ repository = $ this -> repositories -> get ( 'Auth/Group' ) ; if ( $ isNew ) { $ group = new \ Auth \ Entity \ Group ( ) ; } else { if ( $ this -> getRequest ( ) -> isPost ( ) ) { $ data = $ this -> params ( ) -> fromPost ( 'data' ) ; $ id = isset ( $ data [ 'id' ] ) ? $ data [ 'id' ] : false ; } else { $ id = $ this -> params ( ) -> fromQuery ( 'id' , false ) ; } if ( ! $ id ) { throw new \ RuntimeException ( 'No id.' ) ; } $ group = $ repository -> find ( $ id ) ; } $ form -> bind ( $ group ) ; if ( $ this -> getRequest ( ) -> isPost ( ) ) { $ form -> setData ( $ _POST ) ; $ isOk = $ form -> isValid ( ) ; $ isUsersOk = ! empty ( $ group -> users ) ; if ( $ isOk ) { // We have to check here, if there are any users provided // as InputFilter does not allow "required" to be set on fieldsets. if ( $ isUsersOk ) { if ( $ isNew ) { $ user = $ this -> auth ( ) -> getUser ( ) ; $ group -> setOwner ( $ user ) ; $ groups = $ user -> getGroups ( ) ; $ message = /*@translate*/ 'Group created' ; $ groups -> add ( $ group ) ; } else { $ message = /*@translate*/ 'Group updated' ; } $ this -> notification ( ) -> success ( $ message ) ; return $ this -> redirect ( ) -> toRoute ( 'lang/my-groups' ) ; } } if ( ! $ isUsersOk ) { $ form -> get ( 'data' ) -> get ( 'users' ) -> setNoUsersError ( true ) ; } $ this -> notification ( ) -> error ( /*@translate*/ 'Changes not saved.' ) ; } return array ( 'form' => $ form , 'isNew' => $ isNew , ) ; }
docstring: Handles the form.
  
  Redirects to index on save success.
  
  Expected route parameters:
  - 'mode': string Either 'new' or 'edit'.
  
  Expected query parameters:
  - 'name' string Name of the group (if mode == 'edit')
  
  @return Zend\Stdlib\ResponseInterface|array
docstring_tokens: Handles the form .