Problém s propojením komponenty k presenteru

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

Ahoj,

mám komponentu ve které mám další komponentu, která má na starosti formulář. V rodičovské komponentě si ji vytvářím tímto způsobem:

public function createComponentQuestionForm()
	{
		$questionForm = $this->questionFormFactory->create($this->question->getLesson()->getId());
		$questionForm->setQuestion($this->question);

		return $questionForm;
	}

V komponentě formuláře poté v metodě setQuestion nastavuji defaultní hodnoty pro formulář. V továrničce pro formulář používám metodu getUniqueId(), která ovšem v tomto případě skončí na chybě, Component '' is not attached to ‚Nette\Application\UI\Presenter‘. Vím, že to znamená, že komponenta není připojená k presenteru, ale nebyl jsem schopný ji k tomuto presenteru připojit. Pokud v metodě zavolám createComponentQuestionForm přidám řádek $questionForm->setParent($this), skončím na chybě, 'Component '' already has a parent.'. Za jakékoliv rady moc děkuji.

Editoval Lukeluha (1. 5. 2015 16:13)

Lukeluha
Člen | 130
+
0
-

Zkusil jsem přidat řádek $this->addComponent($questionForm, 'questionForm');. Tváří se, jakože to pomohlo, ale poté dostávám z formuláře špatná data…

Lukeluha
Člen | 130
+
0
-

Nakonec se mi to nějak povedlo, předával jsem si do konstruktoru vždy rodiče :)