vnořené skupiny ve fornuláři (addGroup na Nette\Forms\Container)
- BigCharlie
- Člen | 283
Chtěl bych si vytvořit komponentu, která bude obsahovat část formuláře (několik polí). Našel jsem vlákno, kde se to rozebírá. Protože tuhle komponentu chci mít opakovatelnou (řekněme možnost přidat víc adres k firmě), chci využít HosipLanův replikátor.
A teď problém. Naivně jsem zkusil tohle (zbytek kódu):
<?php
class AddressContainer extends BaseContainer
{
protected function configure()
{
$this->addGroup('adresa'); // tady máme problém, Houstone
$this->addText("street", "Ulice:")
->addRule(Form::MAX_LENGTH, 'Jméno ulice nesmí být delší než %d znaků', 30);
$this->addText("zipCode", "PSČ");
$this->addText("city", "Město");
}
}
?>
Skupina má sloužit pro odlišení „mikroformulářů“. Přidat skupinu je možné na formuláři, ne na kontejneru.
- Existuje nějaký důvod, proč? Brání něco přesunu (mimo to, že neexistuje pull request)?
- Jak to řešíte vy? Ručním vykreslením, nebo na to nikdo nenarazil
Narazil jsem na jednu starší diskusi, které jsem nezkoušel – nelíbí se mi, že v komponentě neznám úroveň zanoření (musel bych ji zjišťovat).
- Vojtěch Dobeš
- Gold Partner | 1316
Na co přesně potřebuješ to addGroup()
zavolání? Skupiny
jsem nikdy doposud nepoužil a zajímalo by mě, z jakého důvodu je ty
potřebuješ. Kvůli automatickému vykreslování (tedy
<fieldset>
)?
- Vojtěch Dobeš
- Gold Partner | 1316
Hm, nejsem si teda na stoprocent jistý, ale tohle Nette neumí. Pull request jednoznačně chybí, to jo :). Sám jsem groupy nikdy nepoužil, možná se ještě před přípravou pull requesty optej, jestli to nemá nějaké filozofické překážky :).
- KingKoca
- Člen | 25
Container neumi addGroup, ale umi setCurrentGroup($group). Jedinej zadrhel
je, ze Group (tedy <fieldset>
) musi byt vytvoren na
tride Form.
Resili to (a celkem uspesne) tady: https://forum.nette.org/…dane-skupiny
- Semik
- Backer | 135
KingKoca napsal(a):
Container neumi addGroup, ale umi setCurrentGroup($group). Jedinej zadrhel je, ze Group (tedy
<fieldset>
) musi byt vytvoren na tride Form.Resili to (a celkem uspesne) tady: https://forum.nette.org/…dane-skupiny
Oživuji.
Podle mého to úspěšně vyřešeno stále není. Není možné např. do kontejneru vložit skupinu checkboxů, a přidat jim label → addGroup. Celkem častá situace.