Service ‚homeModel‘ not found. po upgradovani config.neon a bootstrap.php
- simPod
- Člen | 383
Nahral jsem nove Nette (2.0.1) (upgrade z beta verze) a zmenil jsem si obsah config.neon na:
common:
php: # PHP configuration
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.user%
password: %database.password%
services:
authenticator: Authenticator()
robotLoader:
run: true
database: @Nette\Database\Connection
homeModel:
class: HomeModel
arguments: [@database]
production < common:
services:
database:
class: Nette\Database\Connection
arguments: [...]
development < common:
parameters:
database:
driver: mysql
host: localhost
dbname: mydb
user: root
password:
Dale pak bootstrap.php na:
<?php
use \Nette\Diagnostics\Debugger,
\Nette\Application\Routers\Route,
\Nette\Application\Routers\RouteList;
require __DIR__ . '/../libs/nette.min.php';
Debugger::$logDirectory = __DIR__ . '/../log';
Debugger::$strictMode = TRUE;
Debugger::$email = 'my@mail.cz';
Debugger::enable();
$params['libsDir'] = __DIR__ . '/../libs';
$configurator = new Nette\Config\Configurator;
$configurator->addParameters($params);
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../libs')
->register();
$container = $configurator->createContainer();
$configurator->addConfig(__DIR__ . '/config.neon');
//ROUTY
$container->router = $router = new RouteList;
$router[] = new Route('index.php', 'Front:Homepage:default', Route::ONE_WAY);
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Dashboard:default');
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<lang (cz|en|fr|de|it|es)>/<presenter>/<action>', array(
'lang' => 'cz',
'presenter' => 'Homepage',
'action' => 'default'
));
$application = $container->application;
$application->errorPresenter = 'Front:Error';
$application->catchExceptions = \Nette\Environment::isProduction();
$application->run();
Kdyz pak ale chci v BasePresenteru model pomoci
$this->context->homeModel->...
ve startup(), tak mi to
vyhodi danou chybu Service ‚homeModel‘ not found.
Prosim o radu, proc a jak to opravit. Diky
- Michal Vyšinský
- Člen | 608
Myslím si, že bude stačit smazat cache. Možná by měl být ještě tento řádek:
$configurator->addConfig(__DIR__ . '/config.neon');
před tímto řádkem:
$container = $configurator->createContainer();
- simPod
- Člen | 383
@CherryBoss: smazal jsem cache a presunul dany radek. Ted mam chybu
v bootstrap.php
Class and factory are missing in service 'robotLoader' definition.
Robotloader se ted ale vytvari v Bootstrapu ne?
@Ota@s: diky, tusim ze bych nejdrive mel zacit tim, co psal CherryBoss, mozna pak v $this->context ani chyba nebude
diky
- Michal Vyšinský
- Člen | 608
Tak v pořadí řádků asi chyba nebude. Ostatní služby ze sekce
„services“ ti fungují?
Možná přece jen bude chyba v tom pořadí řádků. Změň to jak jsem psal a z config.neon oddělej tu definici robotLoaderu – to tam myslím být nemusí (já to tam nemám a vše mi jede)
Editoval CherryBoss (29. 2. 2012 12:50)