Routa se nechce správně provést

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

Zdravím, mám problém s jednou routou, která sice přesměruje uživatele na správnou adresu, ale v presenteru zobrazuje routu výchozí. Přitom další routy fungují bez problému

Ve zdrojáku či odkazech vidím cestu
/homepage/thumbnail?name=Mp0e7A.jpg&width=718
a když na to kliknu, tak mě to přesměruje na
/i/thumb/718/Mp0e7A.jpg
které se i správně provede (mám upravený .htaccess, Nette se spustí)

HomepagePresenter.php

class HomepagePresenter extends BasePresenter
{
    public function renderThumbnail($name, $width, $height = null)
    {
        $wallPicture = new \App\Components\Thumb($name, $width, $height);
        $this->sendResponse( $wallPicture );
    }
...
}

Když upravím renderThumbnail na actionThumbnail, tak po kliknutí na odkaz zůstává původní (špatná) adresa, ale když zadám správnou cestu, tak se script provede stejně jak s render, jen to nepřesměrovává.

RouterFactory.php

class RouterFactory
{

    /**
     * @return Nette\Application\IRouter
     */
    public static function createRouter()
    {
        $router = new RouteList;
        $router[] = new Route('i/thumb/<width>[x<height>]/<name>', 'Homepage:thumbnail'); //Divné chování
        $router[] = new Route('lastest', 'Homepage:lastest'); //Funguje
        $router[] = new Route('user/<username>[/<show>]', 'User:detail'); //Funguje
        $router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
        return $router;
    }

}

Nevíte, proč mi ta routa blbne?

//edit
Zde je ještě výstup z tracy při generování fotky pomocí
<img src="{link Homepage:Thumbnail $image->link, 151}">

Editoval kazlik (5. 2. 2017 22:48)

vitkutny
Člen | 73
+
0
-

Když upravím renderThumbnail na actionThumbnail, tak po kliknutí na odkaz zůstává původní (špatná) adresa, ale když zadám správnou cestu, tak se script provede stejně jak s render, jen to nepřesměrovává.

Přesměrování probíhá po action* a před render* (viz Presenter::run). Konkrétně to má na starosti metoda Presenter::canonicalize.

kazlik
Člen | 19
+
0
-

vitkutny: Dobře, ale i tak to nevysvětluje to divné chování při renderu

Šaman
Člen | 2659
+
+2
-

kazlik napsal(a):
<img src="{link Homepage:Thumbnail $image->link, 151}">

Nevím, jestli to v tomto případě má vliv, ale :thumbnail má být s malým t.
Navíc by bylo lepší použít {plink}. V šabloně presenteru je to jedno, ale pokud bys to přesunul do komponenty, tak je to důležité.

Editoval Šaman (6. 2. 2017 0:09)

kazlik
Člen | 19
+
0
-

Ajo, kruci, stydím se za tu chybu. Díky moc, po změně na Homepage:thumbnail to funguje :)