default redirect
- Lopo
- Člen | 277
bolo by mozne nastavit redirect() tak, aby v pripade volania bez parametrov
redirectol na default routu ?
dost ma otravuje ze dost casto to musim pisat do redirectu …
ale hlavny problem nastane az sa rozhodne ze default stranka bude uplne iny
presenter:view, ked to vsetko budem musiet dohladavat a prepisovat
- Ondřej Mirtes
- Člen | 1536
Lopo napsal(a):
bolo by mozne nastavit redirect() tak, aby v pripade volania bez parametrov redirectol na default routu ?
dost ma otravuje ze dost casto to musim pisat do redirectu …
ale hlavny problem nastane az sa rozhodne ze default stranka bude uplne iny presenter:view, ked to vsetko budem musiet dohladavat a prepisovat
Tak si na to udělej konstantu v BasePresenteru :)
abstract class BasePresenter extends Presenter {
const DEFAULT_ROUTE = 'Default:';
...
$this->redirect(self::DEFAULT_ROUTE);
Editoval LastHunter (20. 7. 2009 8:05)
- Lopo
- Člen | 277
mno lenze ono je to stale pisanie navyse … stale tam treba nejaky parameter
predat …
podla mna by nebolo spatne keby sa routeru pridal priznak default routy a
redirect() by si to potom sam dokazal zistit a v pripade potreby pouzit
proste ‚lenivost nadovsetko‘ :)
Editoval Lopo (20. 7. 2009 9:20)
- Lopo
- Člen | 277
David Grudl napsal(a):
Žádná routa ale není výchozí, routy jsou jen cesty k presenterům.
to samozrejme viem …
co tak keby v botstrape stacilo niektorej route dat index ‚default‘ ?
tj miesto $router[]=new Route(‚index.php‘, array(…), Route::ONE_WAY) by sa
1× objavilo $router[‚default‘]=new Route(‚index.php‘…) a redirect by
potom tuto default routu pouzil …
pripada mi to ako pomerne logicke a dost sa cudujem ze take nieco ako default
routa pre redirect zatial neni
zatial to mam riesene vlastnou redirect metodou v BasePresenter, ale lepsie mi pride mat toto riesene priamo jednoduchym nastavenim v bootstrape bez potreby cokolvek dalsie niekde inde dopisovat
- David Grudl
- Nette Core | 8218
Pochop, že není potřeba mít default routu, protože odkaz míří vždy na nějaký cíl (tj. presenter & action) a jaká se zvolí routa, je čistě v režii frameworku.
- ales.kafka
- Člen | 34
Využiju tohoto vlákna a postnu tu taky nápad na rozšíření
->redirect(...)
. Sice se dá podobné věci dosáhnout i za
současných okolností, ale zpříjemnilo by to práci a
zpřehlednilo kód.
V BasePresenter.php
mám několik metod, na které odkazuji
např. v handlerech jednotlivých presenterů, či po odeslání formuláře.
A v těchto metodách dochází k přesměrování, ne však vždy na stejnou
action. Zatím to řeším tak, že do metod posílám jako parametr
->lazyLink(...)
, který pak vkládám pomocí metod
->getDestination()
a ->getParams()
.
Zlepšení by mohlo být takové, že ->redirect(...)
by jako
první, či druhý parametr (podle hodnoty $code
) přijímal
právě instanci třídy Link. Pomocí parametru $args
by mohl být
v ->redirect(...)
rozšířen o přidané parametry.
- Petr Motejlek
- Člen | 293
LastHunter napsal(a):
Lopo napsal(a):
bolo by mozne nastavit redirect() tak, aby v pripade volania bez parametrov redirectol na default routu ?
dost ma otravuje ze dost casto to musim pisat do redirectu …
ale hlavny problem nastane az sa rozhodne ze default stranka bude uplne iny presenter:view, ked to vsetko budem musiet dohladavat a prepisovatTak si na to udělej konstantu v BasePresenteru :)
abstract class BasePresenter extends Presenter { const DEFAULT_ROUTE = 'Default:'; ...
$this->redirect(self::DEFAULT_ROUTE);
Jestli nechceš moc psát, tak si v BasePresenteru překryj redirect() a když nedostaneš žádný parametr, tak udělej redirect na výchozí presenter – sice teď budeš přepisovat ten výchozí na dvou místech (v bootstrapu a v BasePresenteru), ale už to nemusíš řešit nikde jinde.
Uprímě, já si redirect() překrývám, ale kvůli tomu že naopak chci při žádných parametrech vlastně udělat refresh() (i když ten neexistuje), tj. použít stejný presenter i view(), kde zrovna jsem, ale vyčistit nepotřebné POSTy a GETy ;).
- Nilp
- Člen | 65
m0t3jl napsal(a):
Uprímě, já si redirect() překrývám, ale kvůli tomu že naopak chci při žádných parametrech vlastně udělat refresh() (i když ten neexistuje), tj. použít stejný presenter i view(), kde zrovna jsem, ale vyčistit nepotřebné POSTy a GETy ;).
A co $this->redirect('this')
?
- Petr Motejlek
- Člen | 293
Nilp napsal(a):
m0t3jl napsal(a):
Uprímě, já si redirect() překrývám, ale kvůli tomu že naopak chci při žádných parametrech vlastně udělat refresh() (i když ten neexistuje), tj. použít stejný presenter i view(), kde zrovna jsem, ale vyčistit nepotřebné POSTy a GETy ;).
A co
$this->redirect('this')
?
No jasně, na to se mi mapuje ten $this->redirect() ;). Když psát málo, tak vážně psát málo ;)