Dynamický default parametr v routě

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

Zdravím, tvořím jednoduché CMS a mám dotaz. Jak nastavit defaultní parametr nějaké routě ne natvrdo, ale dynamicky z databáze? Mám třeba takovou routu:

$router[] = $frontRouter = new RouteList('Front');

$frontRouter[] = new Route('<slug [a-z0-9_-]+>', array(
                'presenter' => 'Page',
                'action' => 'default',
                'slug' => 'domu' // výchozí hodnota
        ));

A jde mi o to, jestli nejde výchozí hodnota ‚slug‘ ⇒ ‚domu‘ nastavit dynamicky z databáze, například by se vybral první záznam a použil se jeho slug.
Samozřejmě to není takový problém to prostě nastavit ručně, spíš mě to opravdu zajímá :-) Jak jste to řešili vy?

nanuqcz
Člen | 822
+
0
-

Ahoj, možná jsem nepochopil dotaz, ale myslíš tohle?

$pages_model = new PagesModel();

$frontRouter[] = new Route('<slug [a-z0-9_-]+>', array(
                'presenter' => 'Page',
                'action' => 'default',
                'slug' => $pages_model->getFirstPage()->slug,
        ));
Droid
Člen | 92
+
0
-

xxxObiWan napsal(a):

Ahoj, možná jsem nepochopil dotaz, ale myslíš tohle?

$pages_model = new PagesModel();

$frontRouter[] = new Route('<slug [a-z0-9_-]+>', array(
                'presenter' => 'Page',
                'action' => 'default',
                'slug' => $pages_model->getFirstPage()->slug,
        ));

Přesně tak! Je to čisté řešení? :-)

nanuqcz
Člen | 822
+
0
-

Droid napsal(a):

Je to čisté řešení? :-)

Je to jediné (jednoduché) řešení, které mě napadá. Pak si ještě můžeš napsat vlastní routu, pak bys to šahání do databáze mohl udělat i „lazy“, ale to se mi zdá zbytečné.

Filip Procházka
Moderator | 4668
+
0
-

Front nebo Home zní lépe, jinak mi to přijde v pohodě :)

Droid
Člen | 92
+
0
-

Moc díky, pánové :-)