App\Forms\SignUpFormFactory::create PHP Method

create() public method

public create ( callable $onSuccess ) : Nette\Application\UI\Form
$onSuccess callable
return Nette\Application\UI\Form
    public function create(callable $onSuccess)
    {
        $form = $this->factory->create();
        $form->addText('username', 'Pick a username:')->setRequired('Please pick a username.');
        $form->addEmail('email', 'Your e-mail:')->setRequired('Please enter your e-mail.');
        $form->addPassword('password', 'Create a password:')->setOption('description', sprintf('at least %d characters', self::PASSWORD_MIN_LENGTH))->setRequired('Please create a password.')->addRule($form::MIN_LENGTH, NULL, self::PASSWORD_MIN_LENGTH);
        $form->addSubmit('send', 'Sign up');
        $form->onSuccess[] = function (Form $form, $values) use($onSuccess) {
            try {
                $this->userManager->add($values->username, $values->email, $values->password);
            } catch (Model\DuplicateNameException $e) {
                $form['username']->addError('Username is already taken.');
                return;
            }
            $onSuccess();
        };
        return $form;
    }

Usage Example

Example #1
0
 /**
  * Sign-up form factory.
  * @return Nette\Application\UI\Form
  */
 protected function createComponentSignUpForm()
 {
     // $httpRequest = $this->getHttpRequest();
     $params = $this->params;
     $to = NULL;
     if (array_key_exists('to', $params)) {
         $to = $params['to'];
     }
     $form = $this->factoryUp->create($to);
     $form->onSuccess[] = function ($form) {
         $httpRequest = $form->getPresenter()->getHttpRequest();
         $httpResponse = $form->getPresenter()->getHttpResponse();
         $cookie = $httpRequest->getCookie('to');
         $cookieTest = $httpRequest->getCookie('toTest');
         if (!empty($cookie)) {
             if ($cookie == 'new') {
                 $httpResponse->deleteCookie('to');
                 $form->getPresenter()->redirect('Test:new');
             }
             if ($cookie == 'test') {
                 $httpResponse->deleteCookie('to');
                 $form->getPresenter()->redirect('Test:test', array('id' => $cookieTest));
             }
         } else {
             $form->getPresenter()->redirect('Admin:');
         }
     };
     return $form;
 }
All Usage Examples Of App\Forms\SignUpFormFactory::create
SignUpFormFactory