Form::setCurrentGroup a název skupiny

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

dokumentaci Nette\Forms se píše:

Aktuální skupinu lze nastavit metodou Form::setCurrentGroup.

$form->setCurrentGroup("název skupiny");

A při tomto použití dostanu chybu:

Argument 1 passed to FormContainer::setCurrentGroup() must be an instance of FormGroup, string given

Jak tedy správně setCurrentGroup použít? Jak můžu z názvu skupiny dostat instanci FormGroup?

Jestli není chyba u mě, měla by se ta dokumentace opravit.

romansklenar
Člen | 655
+
0
-
$form->setCurrentGroup($form["název skupiny"]);

V dokumentaci opravím.

kravčo
Člen | 721
+
0
-

romansklenar napsal(a):

$form->setCurrentGroup($form["název skupiny"]);

Nie tak celkom… ;)

ArrayAccess formulárov – $form['cname'] syntax – slúži na prístup ku komponentom formulára, nie k skupinám. Skupinu získam $form->getGroup('gname'). Samozrejme zápis:

$form->setCurrentGroup($form->getGroup('gname'));

je dosť otravný… Je otravný zrejme preto, že sa neplánoval využívať, použiť sa dá napríklad:

$form = new Form;

$g1 = $form->addGroup('g1');
$g2 = $form->addGroup('g2');

$form->setCurrentGroup($g1);

V dokumentaci opravím.

Aj ja… Som pomalý :)

PetrP
Člen | 587
+
0
-

A nestálo by za implementaci (otázka na davida) i logičtější:

$form->addGroup('g1');
$form->addGroup('g2');

$form->setCurrentGroup('g1');