Service of type App\Model\UserManager: Parameter $database in __construct() has no class type hint or default
- bdinvpvsmvpscuiqpc
- Člen | 57
Ahoj, vytvořil jsem si složku Model, kde mám umístěné modely. V modelech mám UserManager. V souboru common.neon jsem ho přidal do služeb. Zobrazuje se mi error: Service of type App\Model\UserManager: Parameter $database in __construct() has no class type hint or default
- David Matějka
- Moderator | 6445
Ahoj, jak to píše – musíš uvést typehint
v konstruktoru: public function __construct(Nette\Database\Explorer $database)
btw, v tom userExists je zbytečné předávat ten parametr databáze, od toho je právě DI, že si na to sáhneš přes $this->database
- bdinvpvsmvpscuiqpc
- Člen | 57
Děkuji moc, opraveno.
Nicméně se vyskytl další error:
Service 'application.1' (type of App\Presenters\AccountPresenter): Service of type App\Model\UserManager needed by $userManager in __construct() not found. Did you add it to configuration file?
Takto vypadá AccountPresenter: https://pastebin.com/Uj69heiH
- Kamil Valenta
- Člen | 822
Zkus promazat temp/cache, asi se nesahá na aktuální neon, ve kterém máš App\Model\UserManager registrovanou.
- Kamil Valenta
- Člen | 822
A natahuješ určitě ten common.neon, který jsi zde uvedl?
Je v podobě, jakou jsi zde uvedl?
- dakur
- Člen | 493
Nevím, nakolik to s tím může souviset, ale ten UserManager
extenduje Ui\Presenter
, takže je to vlastně presenter, i když
ve složce model
. Ve skutečnosti by vůbec Presenter
extendovat neměl, taky by ale neměl obsahovat tu metodu
redirectUser()
, protože takové věci se skutečně dělají jen
v presenterech.
Editoval dakur (2. 3. 2021 12:03)
- bdinvpvsmvpscuiqpc
- Člen | 57
Děkuji moc všem za pomoc. Problém jsem vyřešil. Zapomněl jsem předělat proměnnou UserManageru na globální.