Class Model not found v ACL tutorialu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
aGr
Člen | 45
+
0
-

Zdravím,

snažím sepsat administraci pro svůj web a chtěl jsem začít návodem zde . Tutoriál je na starší verzi Nette, což nejspíše bude onen problém. V návodu jsem došel k místu, kde se člověk má poprvé přihlásit. Hlavní stránka administrace běží v pořádku, pokud se však snažím přihlásit dostávám chybu Class ‚Model‘ not found, což je pro mě nicneříkající informace. Laděnka dále ukazuje, že chyba nastala v NetteConfigurator na řádce:

$container->addService('model', function($container) {
      $class = 'Model'; $service = new $class($container->getService('database'));
      return $service;
}, NULL);

Raději napíšu co jsem vynechal/upravil (z důvodů jiné verze), neboť problém velmi pravděpodobně bude zde:

  • Níže uvedený kód do configu jsem nevložil, neboť v neonu se to určitě dělá jinak a bohužel jsem na to nepřišel. Čekal jsem však něco ve stylu class Authorizator not found nebo něco takového, ale nic takového nepřišlo, tak jsem pokračoval.
service.Nette-Security-IAuthorizator  = AclProj\Security\Acl
service.Nette-Security-IAuthenticator = AclProj\Security\Authenticator
  • U třídy LoginForm jsem deklaraci třídy a use přepsal z:
namespace AdminModule\Forms;

use Nette\Application\AppForm,
    Nette\Forms\Form,
    Nette\Environment,
    Nette\Security\AuthenticationException;

class LoginForm extends AppForm

na

namespace AdminModule\Forms;

use Nette\Application\UI\Form,
    Nette\Environment,
    Nette\Security\AuthenticationException;

class LoginForm extends Form

Děkuji všem za pomoc!

Filip Procházka
Moderator | 4668
+
0
-

Chyba Class ‚Model‘ not found může mít několik příčin.

  • třída neexistuje
  • třída je v jiném namespace
  • máš špatně nastavený robotLoader (smaž cache, zkontroluje jestli je třída v jedné ze složek, které indexuje a zkontroluj jaké indexuje – je to v configu)

v neonu se konfigurace píše jenom trošku jinak. Znáš Yaml?

services:
	authorizator:
		class: AclProj\Security\Acl

	authenticator:
		class: AclProj\Security\Authenticator
aGr
Člen | 45
+
0
-

Díky, připsal jsem tvoje řádky do neonu a už mi vyskakuje jiná chyba, která bude nejspíš dána tím, jak používám databáze, jinak řečeno to mám pitomě napsaný. Takže to přepíšu a nejspíš to pak půjde. Na Yaml se podívám, díky za tip.

Dík.

Filip Procházka
Moderator | 4668
+
0
-

No mně šlo o to, ti to k něčemu přirovnat, protože neon je takový chytřejší yaml. Takže pokud neznáš, tak není potřeba studovat, stačí tohle.

aGr
Člen | 45
+
0
-

Aha, rozumím, díky za ten odkaz, je to tam fakt moc hezky ukázaný.