Pripojenie do databazy v komponente
- Michal Vyšinský
- Člen | 608
Jestli chceš opravdu přes context tak musíš ještě přes presenter
$this->presenter->context->....
Ale rozhodně lepší řešení bude přes constructor si službu pro práci s databází předat. Třeba s využitím generovaných továrniček.
- eerikk
- Člen | 11
presenter ale tiez nenajde, lebo component mam v samostatnom php
namespace App\FrontModule;
use Nette,
Model;
use Nette\Application\UI\Control;
use Nette\Utils\Html;
class GalleryControl extends Control {
public function renderMain($kategorie)
{
a ako funguje inicializovanie modelu do konstruktora v 2.1? Lebo kod
z 2.0 mi nefunguje
alebo ak dopisem do componentu
/** @var Nette\Database\Context */
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
tiez hadze errory, netreba do zadefinovat este v config.neon?
- Pavel Macháň
- Člen | 282
eerikk napsal(a):
presenter ale tiez nenajde, lebo component mam v samostatnom php
namespace App\FrontModule; use Nette, Model; use Nette\Application\UI\Control; use Nette\Utils\Html; class GalleryControl extends Control { public function renderMain($kategorie) {
a ako funguje inicializovanie modelu do konstruktora v 2.1? Lebo kod z 2.0 mi nefunguje
alebo ak dopisem do componentu/** @var Nette\Database\Context */ private $database; public function __construct(Nette\Database\Context $database) { $this->database = $database; }
tiez hadze errory, netreba do zadefinovat este v config.neon?
Komponenta
namespace App;
class GalleryControl extends \Nette\Application\UI\Control {
/** @var Nette\Database\Context */
private $database;
public function __construct(\Nette\Database\Context $database) {
$this->database = $database;
}
}
Factory interface
namespace App;
interface IGalleryControlFactory {
/** @return GalleryControl */
public function create();
}
Config
services:
- \App\IGalleryControlFactory
Presenter
class AccountPresenter extends BasePresenter {
/** @var \App\IGalleryControlFactory @inject */
public $galleryFactory;
/** @return \App\GalleryControl */
public function createComponentGallery() {
return $this->galleryFactory->create();
}
}
Editoval EIFEL (2. 3. 2014 21:44)
- Pavel Macháň
- Člen | 282
eerikk napsal(a):
vdaka EIFEL, a kam sa ma spravne ulozit subor s Factory interface?
Davam si to tam kam komponentu.
Aby si to jen podle toho nepřepsal tak si přečti https://doc.nette.org/…tion/factory
ať víš jak to vlastně funguje :)
Editoval EIFEL (2. 3. 2014 22:42)