Hi. I'm new to Phalcon and I'm trying to get this form to validate. I am following the example set forward by the Vokuro example, but I'm having some troubles.
My form is declared as a class:
    <?php
    use Phalcon\Forms\Form;
    use Phalcon\Forms\Element\Text;
    use Phalcon\Forms\Element\Hidden;
    use Phalcon\Forms\Element\Password;
    use Phalcon\Forms\Element\Submit;
    use Phalcon\Forms\Element\Check;
    use Phalcon\Forms\Element\Email as EmailField;
    use Phalcon\Validation\Validator\PresenceOf;
    use Phalcon\Validation\Validator\Email;
    use Phalcon\Validation\Validator\Identical;
    use Phalcon\Validation\Validator\StringLength;
    use Phalcon\Validation\Validator\Confirmation;
    class RegistrationForm extends Form {
        public function initialize($entity = null, $options = null) {
            $this->usernameField();
            $this->emailField();
            $this->passwordField();
            $this->confirmPasswordField();
            $this->termsField();
            // $this->csrfField();
            $this->submitButton();
        }
        private function usernameField() {
            $field = new Text('username');
            $field->setLabel('Username');
            $field->addValidators([
                new PresenceOf([
                    'message' => 'Username is required.'
                ])
            ]);
            $this->add($field);
        }
        private function emailField() {
            $field = new EmailField('email');
            $field->setLabel('Email');
            $field->addValidators([
                new PresenceOf([
                    'message' => 'Email is required.'
                ]),
                new Email([
                    'message' => 'Email format is invalid.'
                ])
            ]);
            $this->add($field);
        }
        private function passwordField() {
            $field = new Password('password');
            $field->setLabel('Password');
            $field->addValidators([
                new PresenceOf([
                    'message' => 'Password is required.'
                ]),
                new StringLength([
                    'min' => 5,
                    'messageMinimum' => 'Password must be 5 characters or longer.'
                ])
            ]);
            $this->add($field);
        }
        private function confirmPasswordField() {
            $field = new Password('confirm_password');
            $field->setLabel('Confirm Password');
            $field->addValidators([
                new PresenceOf([
                    'message' => 'Confirm password is required.'
                ]),
                new Confirmation([
                    'message' => 'Both password must match.',
                    'with' => 'password'
                ])
            ]);
            $this->add($field);
        }
        private function termsField() {
            $field = new Check('terms', [
                'value' => 'yes'
            ]);
            $field->setLabel('Accept terms and condition?');
            $field->addValidator(new Identical([
                'value' => 'yes',
                'message' => 'You must accept terms and condition to register.'
            ]));
            $this->add($field);
        }
        private function csrfField() {
            $field = new Hidden('crsf');
            $field->addValidator(new Identical([
                'value' => $this->security->getSessionToken(),
                'message' => 'CSRF validation failed.'
            ]));
            $this->add($field);
        }
        private function submitButton() {
            $this->add(new Submit('register', [
                'value' => 'Register'
            ]));
        }
        /**
         * Prints messages for a specific element
         */
        public function messages($name)
        {
            if ($this->hasMessagesFor($name)) {
                foreach ($this->getMessagesFor($name) as $message) {
                    $this->flash->error($message);
                }
            }
        }
    }I am outputting these fields in the view one by one using $form->render(). However, I am receiving the following exception when calling $form->isValid() - PhalconException: There are no data to validate.
What I am doing wrong? In the example, it's just checking if $form->isValid() and then passing it directly to the model.