Form::LENGTH – špatný defaultní string

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

Toto pravidlo má vcelku logicky kontrolovat konkrétní délku textu ve formuláři, ovšem jako validační text to automaticky vypisuje

Form::LENGTH => 'Please enter a value between %d and %d characters long.',

Což se nápadně podobá Form::RANGE. Na rozsah délku tu jsou přece Form::MIN_LENGTH a Form::MAX_LENGTH. Správně to má přeci být nějak takto, ne?

Form::LENGTH => 'Please enter a value exactly %d characters long.',

Editoval castamir (7. 8. 2012 19:44)

Jan Voráček
Člen | 90
+
0
-

Pravidlo LENGTH zajišťuje, že je délka v určitém rozmezí, tudíž něco jako RANGE pro číselné hodnoty. I z hlediska uživatelského komfortu je určitě lepší, když se zobrazí hláška „Heslo musí být 6 – 25 znaků dlouhé, ukládáme ho v plain-textu“ (lepší příklad mě nenapadl :D), než nejdřív zobrazit hlášku o šesti znacích a následně – když uživatel vyplodí dlouhé heslo – tu o pětadvaceti.

castamir
Člen | 629
+
0
-

Pak by tedy bylo vhodné upravit dokumentaci, která doslovně trvdí
Form::LENGTH - právě tato délka
a nebo přidat příklad použití, aby se na tom nenachytal někdo další…

redhead
Člen | 1313
+
0
-

Ono jde jaksi obojí, ale protože může být jen jedna zpráva, je logické, aby ta defaultní uměla nejsložitější případ.

castamir
Člen | 629
+
0
-
->addRule(Form::LENGTH, null, 2)

mi ale padá na vsprintf na nedostatek parametrů

redhead
Člen | 1313
+
0
-

Tak je tam dokonce bug.

Reportnu.

Editoval redhead (8. 8. 2012 12:33)