Nette\Database\Connection + config.neon + services + vlastní Router
- toka
- Člen | 253
Chtěl bych se zeptat.
Mám v config.neon
nastavené připojení k databázi
prostřednictvím Nette\Database\Connection
následovně:
common:
parameters:
database:
driver: mysql
dbname: dbname
user: root
password: heslo
php:
date.timezone: Europe/Prague
nette:
application:
errorPresenter: Error
debugger:
strictMode: false
database:
dsn: "%database.driver%:dbname=%database.dbname%"
user: %database.user%
password: %database.password%
services:
- Authenticator
- PagesRepository
production < common:
development < common:
V bootstrap.php mám nadefinovaný vlastní router.
...
$container->router[] = new MyRoute();
...
V něm bych potřeboval přistupovat k databázi tak, jako mi přistupují
služby, např. PagesRepository
, ale to se mi nijak nedaří –
buď jsem úplně blbej, a nebo jsem úplně blbej.
Když jsem to „naprasil“, tak mi to funguje, ale nejsem s tím
spokojený – používám statické dibi
:
...
dibi::connect($options);
$container->router[] = new MyRoute();
...
Vyzkoušel jsem, a routování s pomocí DB funguje tak, jak potřebuji. Ale není implementované tak, jak bych chtěl.
Prosím o radu, jak správně použít, abych mohl využít databáze např.
jako v services
.
Díky.
- vvoody
- Člen | 910
Ak nechceš prasiť tak sa inšpiruj v aktuálnom sandboxe. Vytvor si továrničku na router, zaregistruj ju ako službu v configu (tej môžeš predať connection ako ktorejkoľvek inej službe/modelu) a potom zaregistruj službu router ktorá bude vytváraná tou továrničkou.