config.neon – class modelu v jinem modulu nez ostatni modely
- simPod
- Člen | 383
moje struktura v /apps je:
FrontModule
models
…AdminModule
models
…
v config.neon mam
robotLoader:
run: true
menuModel:
class: MenuModel
arguments: [@database]
...
dalsiModel:
class: DalsiModel
arguments: [@database]
Problem je v tom, ze menuModel, ktery je ve slozce /apps/FrontModule/models/ funguje, zatimco dalsiModel nefunguje (class not found) je ve slozce /apps/AdminModule/models/
Je mozne ze si to tam robotloader neumi najit?
dik
- duke
- Člen | 650
Zkus smazat cache robotLoaderu. RobotLoader sice umí něco jako autoRebuild, ale ten se aktivuje jen pokud není detekován produkční mód, což asi nebude tvůj případ…
Ještě můžeš ten produkční mód vypnout ručně, což uděláš tak, že do bootstrap.php umístíš toto:
// Load configuration from config.neon file
$configurator = new Nette\Configurator;
$configurator->setCacheDirectory(__DIR__ . '/../temp');
$configurator->addParameters(array(
'productionMode' => FALSE
));
- simPod
- Člen | 383
dekuji za odpoved.
cache robotloaderu jsem zkousel smazat, ale ot nepomohlo
Jinak zkousim to na localhostu, productionmode by mel byt off, vyskakuje mi debugbar a ladenka
Fatal Error
Class 'DalsiModel' not found
Po smazani cache a jejim obnoveni vidim v ladence:
File: ...\temp\cache\_Nette.Configurator\_-5e94702b18ff9d7eacbf4133444b518d.php Line: 33
26:
27: $container->addService('menuModel', function($container) {
28: $class = 'MenuModel'; $service = new $class($container->getService('database'));
29: return $service;
30: }, NULL);
31:
32: $container->addService('dalsiModel', function($container) {
33: $class = 'DalsiModel'; $service = new $class($container->getService('database'));
34: return $service;
35: }, NULL);
36:
37: date_default_timezone_set('Europe/Prague');
38:
39: Nette\Caching\Storages\FileStorage::$useDirectories = true;
40:
- pawouk
- Člen | 172
- Zkontroluj zda je model ve složce kterou robotLoader prohledává (to je defaultně appDir a libsDir) a pokud je model v jiné tak ho bud presun, nebo zahrn tuto slozku do robotloaderu.
- Zkontoluj jmeno modelu. V configu musi byt plnej meno! Tedy napriklad:
class: \MujNamespace\MojeApp\MujModel
- zkontroluj, zda ma soubor koncovku php. Parkrat se mi stalo ze jsem tam nemel koncovku php a dalo mi dost prace to najit.
- v zoufalosti pak zkus model vytvoret rucne nekde v apliakaci a dej echo jestli alespon to jde.
(Pri kazdem pokusu radeji smaz cache robotloaderu.)