Call to undefined method parent::createTemplate()

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

Zdravím,
prosím vás mám formulár, z ktorého chcem posielať email. Ale keď chcem zavolať $presenter->createTemplate()
tak to vyhodí error: „Call to undefined method parent::createTemplate(), did you mean getTemplate()?“ Kód vyzerá takto:

		$presenter = $form->getPresenter();
		$template = $presenter->createTemplate();

Projekt je nad Nette 2.4. Neviem či to súvisí s tým, alebo na niečo zabúdam…

Ďakujem.

David Matějka
Moderator | 6445
+
0
-

vytvarej pomoci sluzby https://api.nette.org/…Factory.html

Čamo
Člen | 798
+
0
-

David Matejka
Môžeš to trochu upresniť? A ide aj o to, aby bolo nožné vytvárať linky v šablone.
Myslíš niečo ako

Nette\Bridges\ApplicationLatte\TemplateFactory::create( $presenter )

Alebo takto:

$presenter->getTemplateFactory()->createTemplate()

Editoval Čamo (8. 3. 2017 13:36)

David Matějka
Moderator | 6445
+
0
-

podrobneji je to treba tu, tl;dr; – pro odkazy pouzij LinkGenerator

Čamo
Člen | 798
+
0
-

Díky za link. Ale išiel som cetou $presenter->getTemplateFactory()->createTemplate()

Editoval Čamo (8. 3. 2017 16:29)

CZechBoY
Člen | 3608
+
+3
-

Zbytecne ee zatezujes zavislosti na presenteru a jeho zavislostma. Radsi pouzivej svoje zavislosti misto cizich.

Tomáš Votruba
Moderator | 1114
+
+5
-

Čamo napsal(a):

David Matejka
Môžeš to trochu upresniť? A ide aj o to, aby bolo nožné vytvárať linky v šablone.
Myslíš niečo ako

Nette\Bridges\ApplicationLatte\TemplateFactory::create( $presenter )

Alebo takto:

$presenter->getTemplateFactory()->createTemplate()

Myslím, že @DavidMatějka chtěl napsat, aby sis v constructoru vyžádal službu typu Nette\Application\UI\ITemplateFactory:

public function __construct(Nette\Application\UI\ITemplateFactory $templateFactory)
{
    $this->templateFactory = $templateFactory;
}


public function yourFunction()
{
    $template = $this->templateFactory->createTemplate();
    // ...
}

Editoval Tomáš Votruba (8. 3. 2017 23:37)