Formuláře %label a %

- Foowie
 - Člen | 269
 
Při tvorbě formuláře, jehož název obsahuje procento a zároveň je
v podmínce proměnná %label vzniká následující chyba.
Pokud dám do názvu procento 1×, pak je vyvolána chyba „too few
arguments“ způsobena $message
= vsprintf($message, (array) $rule->arg); (jelikože je
%label nahrazen za název a pak je provedena vsprintf.
Pro tuto funkci je však procento řídící znak.
Pokud je v názvu prodento 2×, pak sice chyba nevznikne, ale v názvu je procento 2×.
$form->addText('procento_alkoholu', 'Alkohol [%]')
	->addRule(Form::FILLED, "'%label' je povinná položka !")
				
- David Grudl
 - Nette Core | 8285
 
Podle dokumentace k sprintf by se procento mělo zapsat jako dva znaky
%%.

- Foowie
 - Člen | 269
 
David Grudl napsal(a):
Podle dokumentace k sprintf by se procento mělo zapsat jako dva znaky
%%.
Jak jsem psal výše. Pokud do popisu formulářového prvku vložím místo
% → %%, tak sice chyba nevzniká, ale při
vykreslení daného prvku je v jeho popisu %%;
Shrnutí …
V labelu je %:
- Popis prvku se zobrazí správně
 - Je vyvolána chyba u validací
 
V labelu je %%:
- Chyba u validace je odstraněna
 - Popis prvku však obsahuje 
%%místo%