Maximum function nesting level of ‚100‘ reached, aborting!

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jarek159
Člen | 23
+
0
-

Zdravím,
po přidání ReCaptchaControl do mého formuláře (Github) mi po odeslání formuláře vyskočí následující chyba: Maximum function nesting level of ‚100‘ reached, aborting!

Nevíte někdo, co s tím?

Joe Kolář
Člen | 13
+
0
-

Ukaž kód, jak jej přidáváš nebo rovnou log z Tracy, to budeme zcela určitě moudřejší.

Jarek159
Člen | 23
+
0
-
protected function createComponentRegisterForm() {
        $form = new Form;
        $form->addText('username', 'Jméno')
            ->addRule(Form::FILLED, 'Musíte zadat uživatelské jméno!')
            ->addRule(Form::MIN_LENGTH, 'Uživatelské jméno musí mít alespoň %d znaky!', 2);
        $form->addPassword('password', 'Heslo')
            ->addRule(Form::FILLED, 'Musíte zadat heslo!')
            ->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky!', 2);
        $form->addPassword('passwordAgain', 'Heslo znovu')
            ->addRule(Form::EQUAL, 'Hesla se neshodují!', $form['password']);
        $form->addReCaptcha('captcha')
            ->addRule(Form::VALID, 'Ověřte prosím svou nerobotičnost.');
        $form->addSubmit('register', 'Registrovat');
        $form->onSuccess[] = array($this, 'registerFormSucceeded');
        return $form;
    }

A v latte mám normálně {input captcha}

Po odeslání to však vyhodí tu chybu. Když captchu odeberu, tak to jde bez chyby

[2015–08–16 20–11–07] Fatal error: Maximum function nesting level of ‚100‘ reached, aborting! in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\hrajmajn\web\vendor\nette\forms\src\Forms\Rules.php:252 @ http://127.0.0.1/…l/registrace @@ exception-2015–08–16–20–11–07–4c5e5a18e48d3cc8dc5ec6f61ea306b0.html

Jan Endel
Člen | 1016
+
+1
-

Ahoj, chybka bude asik:

$form->addReCaptcha('captcha')
           ->addRule(Form::VALID, 'Ověřte prosím svou nerobotičnost.'); //<-- tady

aneb form – jak můžeš vidět tady žádný validátor VALID není a díky nette magii co se schovává za validacema ti to udělá tu totok.

Jarek159
Člen | 23
+
0
-

Opravdu to bylo tím, díky..
tomto vlákně je to tedy napsáno chybně, v readme na gitu je to již dobře.

Joe Kolář
Člen | 13
+
0
-

Validaci musíš přidat skrz ReCaptchaControl\ReCaptchaControl::VALID, viz jak popisuje readme recaptcha:

$form->addReCaptcha('captcha')
        ->addRule(ReCaptchaControl\ReCaptchaControl::VALID, 'Incorrect text code.');
uestla
Backer | 799
+
0
-

Ve zmíněném příspvěku jsem to opravil, děkuju za upozornění :-)