Nemužu předat instanci databáze komponentě
- jasin755
- Člen | 116
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
Č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.