Nelze získat připojení k databázi

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

Ahoj,

mám komponentu, kterou potřebuji vypisovat všude, tudíž ji vytvářím v BasePresenteru. Tato komponenta potřebuje připojení k databázi tak jí ho předávám tímhle způsobem:

<?php
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
    private $database;

   public function __construct(Nette\Database\Context $database)
    {
        $this->database = $database;
    }

    protected function createComponentKategorie() {
	$control = new \CategoryControl();
	$control->SetService($this->database);

	return $control;
    }

}
?>

dále samotná komponenta:

<?php
class CategoryControl extends Control
{

    private $database;

    public function SetService($service)
            {
                $this->database = $service;
            }

    public function render()
            {
                $kategorie = $this->database->table('posts')->select('category');
                $this->template->setFile(__DIR__ . '/CategoryControl.latte');
                $this->template->kategorie = $kategorie;
                $this->template->render();
            }

}
?>

nicméně když to pustím, dostanu:

<?php
Call to a member function table() on a non-object
?>

Zvláštní je, že se mi toto děje jen tehdy, pokud připojení k DB získávám konstruktorem v Base presenteru, v ostatních presenterech to šlo tak nevím co s tím…

Nějaké nápady?

jiri.pudil
Nette Blogger | 1034
+
0
-

Nepřepisuješ si v nějakém presenteru ten konstruktor?

Spectrik
Člen | 23
+
0
-

Že by? No máte pravdu. Už jsem to vyřešil. Díky.