Service of type App\model\UzivatelModel required by $uzivatel in NahratPresenter::__construct() not found. Did
- mimacala
- Člen | 113
Service ‚application.4‘ (type of App\Presenters\NahratPresenter): Service of type App\model\UzivatelModel required by $uzivatel in NahratPresenter::__construct() not found. Did you add it to configuration file?
Ahojte, dnes ještě jednou asi jsem něco přehlédl ?
Proč mi nette říká, že nenašlo v construktoru UzivatelModel, když jej
tam vkládám private UzivatelModel $uzivatel,use App\model\UzivatelModel;
Moc Děkuji
<?php
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Form;
use Nette\Database\Explorer;
use Nette\Utils\FileSystem;
use App\model\UzivatelModel;
final class NahratPresenter extends Nette\Application\UI\Presenter
{
public function __construct(
private Explorer $db,
private UzivatelModel $uzivatel,
)
{
}
<?php
namespace App\model;
use Nette;
use Nette\Database\Explorer;
class UzivatelModel
{
use Nette\SmartObject;
public function __construct(
private Explorer $db,
){
}
private $table = "uzivatele";
public function Vloz(array $arr)
{
return $this->db->table($this->table)
->insert($arr);
}
public function VratVse()
{
return $this->db->table($this->table);
}
}
services:
- App\model\UzivatelModel
- Marek Bartoš
- Nette Blogger | 1280
To vypadá správně.
Spíš bych si tipnul, že ti vznikla chyba už někdy v UzivatelModel a Nette ti jen nezobrazuje chyby v očekávém pořadí. Když odmažeš model z konstruktoru presenteru, tak ti to projde nebo vypíše jinou chybu?
- mimacala
- Člen | 113
Pokud odmažu private UzivatelModel $uzivatel,, tak mě normálné pustí
dál a vše funguje do doby než odešlu formulář s požadovanou prom
$uzivatel.
Pak to samozrejmne hodí hlášku Cannot read an undeclared property
App\Presenters\NahratPresenter::$uzivatel.
Cache jsem smazal ale to nepomohlo
Možná ještě, soubor services.neon jsem ve složce config neměl, tak jsem jej vytvářel, je potřeba jej někde ještě zapnout ?
Editoval mimacala (10. 10. 2022 20:54)
- Marek Bartoš
- Nette Blogger | 1280
Jestliže jsi vytvořit nový neon soubor, tak ho musíš includnout v jiném neon souboru nebo v bootstrapu, nenačítají se automaticky.
- Mysteria
- Člen | 797
A máš ten soubor načítanej v Bootstrapu? https://doc.nette.org/…on/bootstrap
Pokud ne, tak ho přidej stejně jako je tam tam ten common.neon, nebo ho
includuj přímo v common.neon: https://doc.nette.org/…onfiguration#…