Nemužu předat instanci databáze komponentě

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

Zdravím, potřeboval bych poradit. Vyvářím komponentu Menu a potřebuji do constructoru předat instanci databáze. Zkusil jsem

public function __construct(Nette\Database\Connection $db){
 parent::__construct();
  $this->db = $db;
}

ale laděnka mi hodí chybu:

Argument 1 passed to MenuControl\TopMenuControl::__construct() must be an instance of Nette\Database\Connection, none given, called in /hosting/www/sound-agency.cz/shop/app/presenters/BasePresenter.php on line 14 and defined

Celý soubor je zde:

namespace MenuControl;
use Nette;

class TopMenuControl extends Nette\Application\UI\Control{

  private $db;

  public function __construct(Nette\Database\Connection $db){
    parent::__construct();
    $this->db = $db;
  }

  public function render(){
     $this->template->setFile(__DIR__ . '/TopMenu.latte');
     $this->template->menus = $this->getMenu();
     $this->template->render();
  }

  private function getMenu(){
    foreach($this->db->table('top_menu')->select('*')->order('position') AS $menu){
      $return[] = $menu;
    }
    if(!empty($return)){
      return $return;
    }else{
      return false;
    }
  }
}
ViPEr*CZ*
Člen | 817
+
0
-

Čemu na tomhle nerozumíte???
Argument 1 passed to MenuControl\TopMenuControl::__construct() must be an instance of Nette\Database\Connection, none given
Prostě Vám to píše jak laikovy, že konstruktor má být spojení na databázi, ale Vy jste mu nic neposlal. Navíc Vás to ještě bere za ruku a vede na řádek BasePresenter.php on line 14, kde se zřejmě pokoušíte onen konstruktor volat. Dejte mu co chce a půjde to.