Přístup k modelu z BasePresenteru

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

Dobrý den.

Zaseknul jsem se na jedný věci a nevím, jak to udělat. Asi to nebude nic těžkýho,ale nějak jsem se v tom zamotal a nevím jak ven.

Z presenteru mi přístup k modelu funguje.Mám to v presenterech řešené takto

private $productFacade;

	function __construct(Model\ProductFacade $productFacade)
	{
		$this->productFacade = $productFacade;
	}

Ale nevím jak udělat, abych měl přístup k databázi už v BasePresenteru, kde chci v metodě beforeRender() připravit do šablony menu, které se bude používat ve všech presenterech.

Může mi to prosím někdo polopatě vysvětlit?

DÍKY MOC.

Editoval kejlicz (21. 11. 2013 17:51)

Oli
Člen | 1215
+
+1
-

K tomu slouzi inject metody.

private $menu;

Public function injectMenu(model\tvojeMenuZDb $menu)
{
.   $this->menu = $menu;
}

public function beforeRender()
{
    $this->template->menu = $this->menu;
}
kejlicz
Člen | 201
+
0
-

Díky. Jdu zkoušet.

Editoval kejlicz (21. 11. 2013 20:21)

MartinitCZ
Člen | 580
+
0
-

Případně alternativní zápis:

/**
 * @var \model\tvojeMenuZDb
 * @inject
 */
 public $tvojeMenuZDb;