Voláni modelu ve vlastní komponentě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zazax1
- Člen | 9
Ahoj chtel jsem se optat kdyz si delam vlastni komponentu konkretne bych chtel si vytvorit tridu pro praci s menu (traverzovani kolem stromu), tak se chci optat jak implementuji novy model do nette sandboxu? Dělam to tak ze si vytvorim slozku modules/treemenu/menucontrol.php a chci neco jako menuModel.php ale jak tohle co nejelegantneji propojit?
- Filip Procházka
- Moderator | 4668
Přečteš si dokumentaci https://doc.nette.org/…introduction, a ještě tohle https://doc.nette.org/cs/configuring
Nastavíš
services:
menuModel:
class: MenuModel(@dbConnection)
factories:
menu:
class: MenuControl(@menuModel)
připojíš komponentu
protected function createComponentMenu()
{
// sekce factories v konfigu ti vygeneruje metodu create<nazev>()
// která vždy vrací novou instanci (nesdílená služba)
return $this->getContext()->createMenu();
}
napíšeš si komponentu
class MenuControl extends Nette\Application\UI\Control
{
private $model;
public function __construct(MenuModel $model)
{
parent::__construct();
$this->model = $model;
}
// ...
}
napíšeš si model
class MenuModel extends Nette\Object
{
private $db;
public function __construct(\DibiConnection $db)
{
parent::__construct();
$this->db = $db;
}
// ...
}
A používáš :)