Zadany parameter v url hlada latte

Tomas8698
Člen | 109
+
0
-

Ahojte,
Pracujem na aplikacii, ktora pracuje s url a ked user zada /gallery/name tak by malo spustit v galleryPresenteri::actionDefault($path), to name chcem pouzit na vytvorenie noveho file, no zatial to hlada template. Poradite mi niekto ako sa toho zbavit? aby to nehladalo latte subor?


public function renderDefault( $path = false): void
    {
        $dir = dirname(__DIR__ ,2);
        $galleryFile = $dir.'/www/AllGalleries'; // tu bude cesta k vsetkym galleriam
        $pathAllGallery = '/AllGalleries';

        if ($this->getHttpRequest()->isMethod('GET')){
            $galleries = FileSystem::read($galleryFile);
           // dd($galleries);
            foreach ($galleries as $gallery){
            $data = [
                'path' => $gallery["path"],
                'name' => $gallery["name"]
            ];
            }
            $this->sendJson($data);

        }

Dakujem za kazdu radu :)

Editoval Tomas8698 (3. 10. 2021 16:08)

MajklNajt
Člen | 471
+
0
-
  1. ukáž ako máš napísaný router – ak tam más štandardnú masku <presenter>/<action> tak sa ti gallery/name prekladá na renderName() a teda renderDefault() sa ti vôbec nezavolá… treba si masku upraviť na napr. <presenter>/<path>
  2. v renderNieco() by si už nemal volať $this->sendJson(), zmeň si to na actionNieco()
Šaman
Člen | 2634
+
0
-

Místo render použij action metodu. Viz životní cyklus presenteru

Tomas8698
Člen | 109
+
0
-

Dakujem pekne, teraz to uz funguje :)

Router teraz vyzera takto

public static function createRouter(): RouteList
	{
		$router = new RouteList;
        $router->addRoute('<presenter>/<action>/', 'Homepage:default');
        $router->addRoute('<presenter>/<path>', 'Gallery:default');
        $router->addRoute('<presenter>/<width>/<height>/<fullpath>', 'Images:default');
		return $router;
	}