Nette\DI\ServiceCreationException – špatné připojení k DB?
- Zerig
- Člen | 70
Snažím se rozjet jeden svůj projekt na gigaserveru. Na localhostu mi to fungovalo.
Laděnka mi hlásí toto:
Nette\DI\ServiceCreationException
Service ‚filesRepository‘: No service of type Nette\Database\Connection
found.
Todo\Repository::__construct() is written correctly and service of this type is
registered.
Chyba je pravděpodobně v připojení k DB??
Nevíte někdo jak to správně nastavit pro gigaserver?
#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
# https://nette.org/en/security-warning
#
common:
parameters:
database:
host: 'localhost'
username: '31710_'
password: 'xxx'
database: 'martinhroch_cz_'
profiler: TRUE
lazy: TRUE
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
session:
autoStart: smart
expiration: +40 days
services:
#database:
# class: DibiConnection(%database%)
#sampleModel:
# class: Model\SampleModel(@database)
userRepository: Todo\UserRepository
pagesRepository: Todo\PagesRepository
folderRepository: Todo\folderRepository
filesRepository: Todo\filesRepository
production < common:
development < common:
nette:
database:
dsn: 'mysql:host=localhost;dbname=martinhroch_cz_'
user: '31710_'
password: 'xxx'
- Pavel Janda
- Člen | 977
Chybí ti nastavení databáze v sekci „production“. Na localu ti to Database našlo, protože to v dané sekci máš.
production < common:
nette:
database:
dsn: 'mysql:host=localhost;dbname=martinhroch_cz_'
user: '31710_'
password: 'xxx'
development < common:
nette:
database:
dsn: 'mysql:host=localhost;dbname=martinhroch_cz_'
user: '31710_'
password: 'xxx'
Editoval Beton (23. 2. 2015 12:24)
- Pavel Janda
- Člen | 977
Máš tam:
1, nastavené připojení k databázi, pokud jsi v prostředí
„develop“, ale nezávisle na parametrech, které ukládáš nahoře
2, nastavené nějaké parametry, mimo jiné i databázi; Pozor! Odtud Nette
nic nebere, musel bys napsat toto:
production < common:
nette:
database:
dsn: 'mysql:host=%database.host%;dbname=%database.database%'
user: %database.user%
password: %database.password%
- Pavel Janda
- Člen | 977
A jak en config načítáš v bootstrapu? Musíš mu nějak říci, aby hledal i sekci „production“.
Pokud máš všude stejné připojení, tak ho dej do common:
common:
parameters:
database:
host: 'localhost'
username: '31710_'
password: 'xxx'
database: 'martinhroch_cz_'
profiler: TRUE
lazy: TRUE
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
session:
autoStart: smart
expiration: +40 days
database:
dsn: 'mysql:host=%database.host%;dbname=%database.database%'
user: %database.user%
password: %database.password%
- Zerig
- Člen | 70
Takhle jsem to upravil a myslím, že mě to k DB pustilo. Protože to hlásí jinou chybu: Trying to get property of non-object
common:
parameters:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
session:
autoStart: smart
expiration: +40 days
services:
#database:
# class: DibiConnection(%database%)
#sampleModel:
# class: Model\SampleModel(@database)
userRepository: Todo\UserRepository
pagesRepository: Todo\PagesRepository
folderRepository: Todo\folderRepository
filesRepository: Todo\filesRepository
production < common:
nette:
database:
dsn: 'mysql:host=localhost;dbname=martinhroch_cz_'
user: '31710_'
password: 'xxx'
Takže problém s DB vyřešen.
Děkuju