Vložení proměnných z databáze do @layout.latte

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

Zdravím,

podobná témata jsem sice našel, ale neodpovídaly úplně tomu, co potřebuji.

Chtěl bych do @layout.latte vložit proměnné z databáze (kvůli menu, kde mohou jednotlivé sekce přibývat), ovšem úplně nevím jak nato. Zjistil jsem, že se to pravděpodobně bude dělat v Basepresenteru pomocí metody beforerender, ovšem nepřišel jsem na to, jak bych měl vytvořit v basepresenteru připojení k databázi (nebo to může být klidně směřované do modelu, kde bych si na to dotaz udělal), respektive abych mohl vybrat

table('cathegory');

a uložit to do proměnné $cathegory v $layout.latte

Aleš Jandera
Člen | 24
+
0
-

Ahoj,

vytvoř si na to třídu v modelu. Tu třídu z modelu si potom injectuj do basePresenteru

<?php
use /model/MyModelClass
abstract class BasePresenter extends Presenter
{

	/** @var MyModelClass **/
	private $myModelClass;

	public function beforeRender()
	{
		$this->template->myVariable = $this->myModelClass()->myFunctionFromModel();
	}

	public function injectMyModelClass(MyModelClass $myModelClass)
	{
		$this->myModelClass = $myModelClass
	}
}
?>
rosakovnik
Člen | 13
+
0
-

Paráda, funguje to! Mockrát děkuji… Myslel jsem si, že to takhle nějak bude, ale nedokázal jsem to sám přesně napsat bez chyb, ještě jednou díky!