Odkaz do jiného modulu
- deric
- Člen | 93
Snažil jsem se vytvořit přesměrování do jiného modulu:
$this->redirect('Front:Access:login',$this->backlink());
ovšem končí to chybou
presenter 'Admin:Front:Access', class 'Admin_Front_AccessPresenter'was not found
je použita tato routa:
$router[] = new Route('<module>/<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
) );
Mám chybu v tom odkazu? Můžete mi vysvětlit jak by se mělo toto implementovat?
- vlki
- Člen | 218
Myslím, že máš chybu v tom odkazu. Protože teď se to bere relativně vůči tomu modulu v kterém jsi. Pokud ale ještě před jméno modulu dáš dvojtečku, tak se to bere absolutně (nebo o úroveň výš? teď si nejsem jistý…).
Každopádně zkus
$this->redirect(':Front:Access:login',$this->backlink());
- Panda
- Člen | 569
Ještě bych možná zmínil, že metoda backlink() u Presenteru v současné verzi Nette vrací celou cestu k presenteru bez oné dvojtečky na začátku, takže při vytváření odkazu, redirectu nebo jiné podobné operaci je nutno jí tam doplnit, jinak výsledkem bude opět odkaz např. na submodul Front v modulu Admin.
Je to feature, bug, nebo se to vztahuje k ‚TODO: implement $full‘, Davide?
- David Grudl
- Nette Core | 8218
Ta cesta, co se uvádí v metodách link(), redirect() nebo follow(), se
nazývá destination
– jde o řetězec, ze kterého se odvodí
cílový presenter a view podobně, jako se odvozují relativní a absolutní
cesty v souborovém systému nebo URL – jen místo lomítka se používá
dvojtečka. Proto je také absolutní cesta začíná dvojtečkou.
V jedné z předchozích revizí jsem přidal klíčové slovo
this
, takže link('this')
resp.
link('this!')
vede na současný presenter & view.
Panda napsal(a):
Ještě bych možná zmínil, že metoda backlink() u Presenteru v současné verzi Nette vrací celou cestu k presenteru bez oné dvojtečky na začátku, takže při vytváření odkazu, redirectu nebo jiné podobné operaci je nutno jí tam doplnit, jinak výsledkem bude opět odkaz např. na submodul Front v modulu Admin.
Je to feature, bug, nebo se to vztahuje k ‚TODO: implement $full‘, Davide?
Ono je to tak, že metoda backlink() by měla sloužit pro případy, když je například kvůli přihlášení potřeba přesměrovat na stránku s přihlašovacím formulářem a poté zase zpět. Jenže zatím nefunguje, respektive není to implementované.
- ViliamKopecky
- Nette hipster | 230
David Grudl napsal(a):
Ono je to tak, že metoda backlink() by měla sloužit pro případy, když je například kvůli přihlášení potřeba přesměrovat na stránku s přihlašovacím formulářem a poté zase zpět. Jenže zatím nefunguje, respektive není to implementované.
Já backlink()
používám na „vyčištění“ URI od
?do=...
atd. Čili po odeslání formuláře se vrátim akorát na
adresu bez query.
Je tedy backlink()
pro tenhle účel, nebo to je spíš akorát
využití bugu?
- phx
- Člen | 651
Snad bych jen upozornil, ze Route jsou nyni citlive na velikosti pismen! Docela jsem na tom ted pri update Nette vysekal a hned 2×! Drive (3 tydny na zpet) na velikosti nezalezelo, ale ted ANO. Je to BUG ci umyls?
// drive OK a ted ne
$router[] = new Route('<module>/<presenter>/<action>', array(
'module' => 'front',
'presenter' => 'default',
'action' => 'default',
));
// ted musi byt:
$router[] = new Route('<module>/<presenter>/<action>', array(
'module' => 'Front',
'presenter' => 'Default',
'action' => 'default',
) );
Kdyz poslu URL http://localhost/…kt/PreSenTer nebo http://localhost/…kt/presenter ci dokonce http://localhost/…kt/PRESENTER tak pokazde to vykresli jednu a tu samou stranku. Nebylo by proto vhodnejsi aby routy nebyly nachylne na velikosti pismen? Predejde se zbytecnym chybam!
- David Grudl
- Nette Core | 8218
phx napsal(a):
Snad bych jen upozornil, ze Route jsou nyni citlive na velikosti pismen! Docela jsem na tom ted pri update Nette vysekal a hned 2×! Drive (3 tydny na zpet) na velikosti nezalezelo, ale ted ANO. Je to BUG ci umyls?
Citlivé to bylo pořád, jen dřív se generoval požadavek s malýma písmenkama a to se změnilo, viz vysvětlení.
Vím, že dotaz je staršího data, a chtěl jsem Routy rozšířít o možnost porovnávat parametry a jejich výchozí hodnoty i bez citlivosti na velikost písmenek, ale s postupem času přemýšlím, jestli z toho neudělat normu – potřebujete někdo porovnávání s citlivostí na velikost písmenek?