Multiplier a defaultní hodnoty (vyhazuje undefined method)

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

Ahoj,

vytvářím formulářovou komponentu přes multiplier:

presenter

	protected function createComponentFormKategorie() {
		$multi = new Multiplier(function($id) {
return $this->formKategorieFactory->create();
		});

		return $multi;
	}

a potřebuji je naplnit defaultními hodnotami. Ale když použiju v render metodě presenteru:

$this['formKategorie'][73]->setDefaults(array("nazev" => "neco"));

tak mi to vypíše: „Call to undefined method FormKategorie::setDefaults()“

Uniká mi něco? Jak se v presenteru naplňují multiplier formuláře?

Díky za radu

David Matějka
Moderator | 6445
+
+2
-

Ahoj, nema pod sebou ta FormKategorie komponenta jeste komponentu s formularem samotnym? tzn v metode treba createComponentForm?

pak musis pouzit

$this['formKategorie'][73]['form']->setDefaults(array("nazev" => "neco"));

pripadne si nejaky setter udelat na te FormKategorie komponente a tam to uvnitr nastavit na tu samotnou komponentu formulare

btw, doporucuji vsude pouzivat angictinu, tzn FormCategory – nebo lepe – CategoryForm

Thommie
Člen | 34
+
0
-

David Matějka napsal(a):

Ahoj, nema pod sebou ta FormKategorie komponenta jeste komponentu s formularem samotnym? tzn v metode treba createComponentForm?

pak musis pouzit

$this['formKategorie'][73]['form']->setDefaults(array("nazev" => "neco"));

pripadne si nejaky setter udelat na te FormKategorie komponente a tam to uvnitr nastavit na tu samotnou komponentu formulare

btw, doporucuji vsude pouzivat angictinu, tzn FormCategory – nebo lepe – CategoryForm

Aha, má pod sebou ještě formulář :)) to mi vůbec nedošlo, protože ta komponenta se jmenuje stejně, díky za pomoc.
Takže nakonec funguje:

$this['formKategorie'][73]['formKategorie']->setDefaults(array("nazev" => "neco"));