Jak dostat hodnotu 0 skrz router?
- webman
- Člen | 15
Zdravím,
možná se ptám hloupě, ale nezdá se mi způsob, jaký se chová router, když jako parametr dostane hodnotu 0.
příklad
http://www.domain.example/something/list/3/0/name
Zkoušel jsem použít routu
$router[] = new Route('<presenter>/list[/<limit>[/<offset>[/<orderby>[/<desc>]]]]',
array('presenter' => 'Homepage','action' => 'list','iface' => 1,'limit' => 0,
'offset' => 0,'orderby' => NULL,'desc' => 'ASC'));
nebo
$router[] = new Route('<presenter>/list[/<limit>[/<offset>[/<orderby>[/<desc>]]]]',
array('presenter' => 'Homepage','action' => 'list','iface' => 1,'limit' => 0,
'offset' => NULL,'orderby' => NULL,'desc' => 'ASC'));
nebo
$router[] = new Route('<presenter>/list[/<limit>[/<offset>[/<orderby>[/<desc>]]]]',
array('presenter' => 'Homepage','action' => 'list','iface' => 1,'limit' => 0,
'offset' => -1,'orderby' => NULL,'desc' => 'ASC'));
nebo
$router[] = new Route('<presenter>/list[/<limit>[/<offset>[/<orderby>[/<desc>]]]]',
array('presenter' => 'Homepage','action' => 'list','iface' => 1,'limit' => 0,
'offset' => 'none','orderby' => NULL,'desc' => 'ASC'));
Ve všech uvedených případech, pokud je parametrem 0, nahradí se parametr
za výchozí hodnotu bez ohledu na to, jaká je. Pokud tedy použiju první
variantu, zkrátí mi to url dotaz na:
http://www.domain.example/something/list/3/
To chápu. To má logiku.
Jenže v ostatních přípdech mi ho to taky ořízne a ještě mi to
‚zprzní‘ data, např.:
http://www.domain.example/something/list/3/none
Otázka zní – co dělám špatně?
Editoval webman (10. 4. 2016 12:33)
- webman
- Člen | 15
Je mi to hloupé, ale měl bych ještě jeden dotaz:
$router[] = new Route('<presenter>/list[/<limit>[/<offset>[/<orderby>[/<desc>]]]]',
array('presenter' => 'Homepage','action' => 'list','iface' => 1,'limit' => 0,
'offset' => NULL,'orderby' => NULL,'desc' => 'ASC'));
$router[] = new Route('api/<presenter>/<action>[/<id>]', array('presenter' => 'Homepage',
'action' => 'default','iface' => 2,'id' => NULL),Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', array('presenter' => 'Homepage',
'action' => 'default','iface' => 1,'id' => NULL));
Ta první routa už funguje OK, ale po přihlášení a přesměrování na
http://example.com/ se router
domnívá, že výchozí presenter celého webu je Homepage:List.
Přitom ta maska těch prvních dvou rout tomu neodpovídá (chybí tam /list),
takže mi není jasné proč si to bere výchozí presenter z první routy a ne
z poslední…
EDIT:
lze to vyřešit přidáním této routy na začátek, ale nepřijde mi to
čisté řešení…
$router[] = new Route('', array('presenter' => 'Homepage','action' => 'default'));
Editoval webman (10. 4. 2016 16:35)