Model pracující s více tabulkami
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- aGr
 - Člen | 45
 
V novém quickstartu jsou vytvořené modely jako potomky Nette\Database\Table\Selection a evidovány ve config.neon. Elegantní. Došel jsem však k modelu, který potřebuje pracovat s více tabulky (svoji a „pomocnými“). Napadlo mě, že by Model by potomkem Nette\Database\Connection a vždy zvolím tu správnou tabulku. Teď k otázkám:
- Je to správná úvaha?
 - Pokud ano, proč dostávám od laděnky
	
Service 'page': Parameter $dsn in Method Nette\Database\Connection::__construct() is missing? U „jednotabulkových“ (potomci Selection) vše funguje jak má. Config: 
common:
	php:
		date.timezone: Europe/Prague
		# session.save_path: "%tempDir%/sessions"
		# zlib.output_compression: yes
	nette:
		session:
			autoStart: smart
		database:
			default:
				dsn: '%database.driver%:host=%database.host%;dbname=%database.dbname%'
				user: %database.username%
				password: %database.password%
	services:
		database: @Nette\Database\Connection
		authenticator: Security\Authenticator
	factories:
		page: Model\PageModel
		basicPage: Model\BasicPageModel
production < common:
	parameters:
		database:
			driver: mysql
			host: localhost
			dbname: xx
			username: xx
			password: xx
development < common:
	parameters:
		database:
			driver: mysql
			host: localhost
			dbname: yy
			username: yy
			password: yy
Díky za váš čas.

- Nox
 - Člen | 378
 
Jen tak na doplnění
Tohle konkrétně je případ, kdy mi to paradoxně nepřijde úplně
jednoznačné
- Model tam nedědí od Connection, ale Selection
 - QuickStart pravděpodobně používá tu podivnou terminologii že „model“ = „loader/repository“
 
Tudíž pokud má model poskytovat nějaký vybraný úsek databáze, pak se dá IS-A uznat. Vzhledem k tomu, že v NDB funguje joinování, tak by to snad mělo jít udělat i nad víc tabulkama.
Ale samozřejmě kdybych to dělal, tak bych taky zvolil kompozici, asi to v QS není zvolené úplně šťastně