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)