Uprava sql nez se provede
- Kamil Valenta
- Člen | 820
Můžeš si podědit Database\Context (nebo jeho obdobu v Nette 3) a
přepsat si query().
Kdysi jsem to použil, abych si mohl přidávat před názvy tabulek
prefixy.
- H0w4rd
- Člen | 96
Díky, vyzkoušel jsem si přepsat funkci query(), takže to takhle lze.
Jenom je problém, že bych musel najít všechny výskyty \Nette\Database\Context a nahradit to za mou odděděnou třídu.
Je nějaký způsob, jak vnutit moji třídu místo \Nette\Database\Context? Nebo prostě jakýkoliv způsob, aby v kódu mohlo zůstat \Nette\Database\Context a programátoři nemuseli myslet na to, že musí použít odděděnou třídu?
- mystik
- Člen | 312
Stačí předefinovat jaká instance se vytváří v DI containeru. Pokud používáš standardní Nette setup tak:
services:
database.default.context:
create: \My\Database\Context
Nově se Context přejmenoval na Explorer takže pokud jedeš jen na novějších verzích tak spíš:
services:
database.default.explorer:
create: \My\Database\Explorer
Ale první verze funguje na nových verzích taky – přes alias. Takže je lepší pokud potřebuješ držet BC.
Editoval mystik (22. 9. 2022 11:26)