Missing template file ‚ERROR : WebFacade → function findLatte‘

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

Zdravím pánové,

prosím o radu, proč se to rozbilo?
vytvořil jsem jednoduchý webik a pak si říkám zkusím si ho ze složitit

adresářová struktura, která byla:

app - components
    - forms
    - model
    - presenters
    - templates
    - router
log
vendor
www - css
	- js

a ucinil jsem nasledujici upravu

app - components
    - forms
    - model
	- front   - presenters
    		  - templates
    - backend - presenters
			  - templates
    - router
log
vendor
www - css
	- js

v configu.neon mam nadefinovanou službu

...
services:
    - App\Model\WebFacade
...

kterou pomoci připojím dle potřeby

@var \App\Model\WebFacade @inject

jine nastaveni u služby

...
namespace App\Model;
...
class WebFacade extends Nette\Object
...
je fyzicky umístěna ve složce app\model ... viz adresářová struktura

jenže po změně adresářové struktury objevila se tato chyba Missing template file … přičemž jde o službu ne presenter se šablonou

v ladence vidím řádek 26_App_Model_WebFacade yes App\Model\WebFacade #059 ale bez obsahu (trojúhelník s výpisem)
mám na webu i jinou službu a tam je vše v pořádku

David Matějka
Moderator | 6445
+
0
-

nemyslim si, ze to nejak souvisi s WebFacade, ale pouze s presenterem a jeho sablonou

vlkodlak
Člen | 175
+
0
-

hmmm, zvláštní věc, které nerozumím. Když vše „naházím“ na jednu hromadu tak vše funguje, když doplním moduly tak se objeví chyba viz. výše

Pokud změním adresářovou strukturu tak také bych měl změnit i namespace u presentru? z mého příkladu např. HomepagePresenter, který měl namespace App\Presenters; bych mel upravit na namespace App\Front\Presenters; ? a nasledne asi upravit v configu.neon mapovací string na App\Modules\ * \Presenters\ * Presenter? a také u routeru doplnit Modules?

Chtěl bych oddělit funkce přihlášeného od nepřihlášeného uživatele, tak jsem „směřovan“ k umístěni všech funkci, komponent a procedur na jednu hromadu :( existuje, prosím, nějaký tip rada jak to rozumně oddělit?

David Matějka
Moderator | 6445
+
0
-

kdyz rozdelujes presentery do skupin (front/admin apod), je lepsi je zaradit krome slozky i do modulu – tzn nastavit spravny namespace. ale pro funkcnost to nutne neni. stejne tak to nema vliv na hledani sablon.

ukaz prosim, kde presne je presenter, ktery nefunguje, a kde jsou jeho sablony

vlkodlak
Člen | 175
+
0
-

můj HomepagePresenter je umístěna ve složce app / front / presenters šablonu default.latte jsem umístil do app / front / templates / Homepage a jakmile v HomepagePresentru změním namespace z App\Presenters; na App\Modules\Front\Presenters; se mi objeví to Missing function u definované sevisy

obdobně to mam i pro uživatele UserPresenter je umístěna ve složce app / backend / presenters šablonu default.latte jsem umístil do app / backend / templates / User a v UserPresentru změním namespace z App\Presenters; na App\Modules\Backend\Presenters;

David Matějka
Moderator | 6445
+
0
-

ukaz prosim celou ladenku

vlkodlak
Člen | 175
+
0
-

promiň teď, prosím, porad … myslíš výpis vygenerovaného kontejneru?

David Matějka
Moderator | 6445
+
0
-

ne, bluescreen s tou chybou

vlkodlak
Člen | 175
+
0
-

RuntimeException

Missing template file ‚ERROR : WebFacade → function findLatte‘. search►
Source file
Call stack
…\ngj\www\vendor\latte\latte\src\Latte\Engine.php:110 source Latte\Loaders\FileLoader->getContent(arguments)

…\ngj\www\vendor\latte\latte\src\Latte\Engine.php:186 source Latte\Engine->compile(arguments)

…\ngj\www\vendor\latte\latte\src\Latte\Engine.php:93 source Latte\Engine->loadTemplate(arguments)

…\ngj\www\vendor\latte\latte\src\Latte\Engine.php:69 source Latte\Engine->createTemplate(arguments)

…\src\Bridges\ApplicationLatte\Template.php:52 source Latte\Engine->render(arguments)

…\src\Application\Responses\TextResponse.php:49 source Nette\Bridges\ApplicationLatte\Template->render()

…\nette\application\src\Application\Application.php:153 source Nette\Application\Responses\TextResponse->send(arguments)

…\nette\application\src\Application\Application.php:83 source Nette\Application\Application->processRequest(arguments)

D:\Program\xampp\htdocs\ngj\www\www\index.php:6 source Nette\Application\Application->run()

1: <?php
2:
3: $container = require __DIR__ . ‚/../app/bootstrap.php‘;
4:
5: $container->getByType(Nette\Application\Application::class)
6: ->run();

David Matějka
Moderator | 6445
+
0
-

prosim nejlepe rozklikavaci html

David Matějka
Moderator | 6445
+
+1
-

to vypada, ze je to nejaky tvuj custom kod, co failuje. hledej v projektu retezec „findLatte“

vlkodlak
Člen | 175
+
0
-

@DavidMatějka no pravě, že vše fungovalo do změny adresářů a úpravy namespace resp. pokud namespace ponechám bez změny ve výchozím tvaru tak to funguje, ale mně se to nelibí. i tak Ti děkují za pomoc. zkusím „přeskládat“ project dle nových adresových struktur a čekat kdy a kde se to sesype a poté bych Tebe / vás požádal znovu o pomoc

vlkodlak
Člen | 175
+
0
-

@DavidMatějka : mel jsi pravdu chyba byla v kódu u mne přesněji mezi klávesnici a židli. Ještě jednou děkují Ti za pomoc