Debug nezobrazuje dotazy s Nette\Database
- MW
- Člen | 626
Zdravim,
po aktualizaci Nette se me prestaly zobrazovat dotazy vykonane do db.
Asi pred pul rokem David psal, ze bude.. ale pak uz nic.. nedelam neco
spatne?
Díky za rady.
Zde muj config:
common:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
# default_charset: "UTF-8"
services:
authenticator:
class: \IkonisModule\MyAuth
authorizator:
class: \IkonisModule\Acl
database:
class: Nette\Database\Connection
arguments: ['mysql:host=localhost;dbname=xxx', 'xxx', 'xxx']
#models
dataModel:
class: \IkonisModule\DataModel
arguments: ["@database"]
production < common:
development < common:
- David Matějka
- Moderator | 6445
https://github.com/…/config.neon
sluzba se ted nevytvari primo do sekce services, ale do nette > database,
sluzba potom bude
v $container->nette->database->default
Editoval matej21 (8. 9. 2012 22:35)
- David Matějka
- Moderator | 6445
smazal jsi cache? jiny reflection si nepouzival ani u toho puvodniho configu, takze tim by to byt nemelo.. a dotazy by se mely zapisovat porad stejne
- MW
- Člen | 626
Tak je to tak. Jakmile to udelam takto:
common:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
# default_charset: "UTF-8"
nette:
database:
dsn: 'mysql:host=localhost;dbname=xxx'
user: xxx
password: 'xxx'
services:
database: @nette.database.default
authenticator:
class: \IkonisModule\MyAuth
authorizator:
class: \IkonisModule\Acl
#models
dataModel:
class: \IkonisModule\BranchesModel
arguments: ["@database"]
Dostavam chyby „no reference found“ u dotazu typu:
$this->database->table('cars')->select('cars.*, branches.name AS branch_name');
po staru… tedy projde.
Jak toto prosim resit?
Diky !
- David Matějka
- Moderator | 6445
zkus:
common:
...
nette:
database:
...parametry..
reflection: Nette\Database\Reflection\ConventionalReflection
- MW
- Člen | 626
Dela to tedy asi debug pro db a nektery z jeho dotazu.
Toto zabralo.. znamena to, ze to vypousti hledani cizich klicu?
Ja to pochopil tak, ze debug pro db je urcen pouze pro Inno3d. Je to tak?
Nemel bych radeji prejit na InnoDB, nastavit klice a prepsat ty Selecty?
Pre prisel MyIsam rychlejsi na obyc pouziti..
Diky !
Editoval MW (9. 9. 2012 11:34)
- David Matějka
- Moderator | 6445
ty dotazy v debug panelu by se mely zobrazovat bez ohledu na vsechno (pokud je teda aktivni develop mod :) )
ConventionalReflection pouziva pripojovani tabulek podle jednoduchych pravidel, ktery je mozno zmenit – treba ze nazev sloupce s „cizim klicem“ je ve stylu tabulka_id atd.
discoveredreflection je pouzitelny jen v enginech s podporou cizich klicu (innodb..) a vyhledava to v meta udajich databaze
doporucuju innodb, na cizi klice, triggery atd. si zvyknes rychle :) a par chybejicich veci jako fulltext se necha nahradit jinak (samostatna myisam tabulka, pripadne specialni fulltextovej server – sphinx, elactic search)
- MW
- Člen | 626
Diky za vysvetleni! uz chapu.. moc me to pomohlo…
Snad jen posledni otazka..
Lze nejak toto:
$this->database->table('cars')->select('cars.*, branches.name AS branch_name');
Napsat lépe? treba pomoci ref(), proste jednoduchy JOIN nazvu z jine tabulky ?
Jeste jednou diky !
Editoval MW (9. 9. 2012 14:27)