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 | 8228
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%