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,
        );
    }
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,
        );
    }
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 , ) ; }
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
Handles the form .