Skoro rovnaké Route-y – rozlišovanie
- Lukass445
- Člen | 19
Zdravím,
narazil som na menší problém. V mojej route továrni mám 3 Route-y a prvé dve sa mi bijú(nefungujú nezávisle), ako keby ich nette nevedel rozoznať. Prvá funguje správne, no stále sa aplikuje aj pri pokuse o použitie tej druhej.
createRouter() z RouterFactory
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('<presenter>[/<action>]/<postId>/<title>',
array('presenter' => 'Post',
'action' => 'show',
'title' => array(
Route::FILTER_IN => function($title)
{
return $title;
},
Route::FILTER_OUT => function($title)
{
return Strings::webalize($title, NULL, FALSE);
}
)),'Post:show'
);
$router[] = new Route('<presenter>[/<action>]/<smartphoneId>/<title>',
array('presenter' => 'Smartphone',
'action' => 'show',
'title' => array(
Route::FILTER_IN => function($title)
{
return $title;
},
Route::FILTER_OUT => function($title)
{
return Strings::webalize($title, NULL, FALSE);
}
)),'Smartphone:show'
);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
screen z ladičky: http://i.imgur.com/oVOV3GU.png
za každú pomoc ďakujem
Editoval Lukass445 (20. 8. 2014 16:30)
- Caine
- Člen | 216
Tak router nema jak rozeznat, o kterou z rout se jedna, protoze jsou
v podstate stejny (minimalne pro IN). Bud si ty routy nejak odlisit maskou
(napr placnu
<presenter>[/<action>]/m-<smartphoneId>/<title>
ci
<presenter>[/<action>]/10000<smartphoneId>/<title>
)
nebo ty postId/smartphoneId napojit na hledani v DB..
PS: ta specifictejsi, pokud bys pouzil variantu s upravenou masku, by mela byt driv..
Editoval Caine (20. 8. 2014 17:23)
- David Matějka
- Moderator | 6445
a potrebujes dynamicky presenter? ze bys tam dal pouze
post[/<action>]/<postId>/<title>
respektive
smartphone[/<action>]/<smartphoneId>/<title>
a btw, ten treti parametr ‚Post:show‘ muzes smazat, tahle syntaxe se dava jako druhy parametr kdyz nepouzijes pole s komplexnejsimi pravidly (jako to delas..)
- Lukass445
- Člen | 19
matej21 napsal(a):
a potrebujes dynamicky presenter? ze bys tam dal pouze
post[/<action>]/<postId>/<title> respektive smartphone[/<action>]/<smartphoneId>/<title>
a btw, ten treti parametr ‚Post:show‘ muzes smazat, tahle syntaxe se dava jako druhy parametr kdyz nepouzijes pole s komplexnejsimi pravidly (jako to delas..)
diky moc, rozdiel medzi dynamickym presenterom a normalnym vpisanim slova do linky (natvrdo) si este musim zistit, no toto riesenie vyriesilo moj problem :)