Použití redirect metody presenteru

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

Zdravím,
mám modul AdminModul a v něm dva presentery – LoginPresenter a AdminPresenter.
V LoginPresenteru chci v případě, že uživatel je zalogován, tak ho přesměrovat do AdminPresenteru.

<?php
public function actionDefault() {
        if($this->getUser()->isLoggedIn()) {
            $this->redirect('Admin:Admin:default');
        }
}
?>

Pořád se to ale snaží přesměrovat jakoby do dalšího submodulu
Cannot load presenter ‚Admin:Admin:Admin‘, class ‚AdminModule\AdminModule\AdminPresenter‘ was not found.
Dál bych se chtěl zeptat na následující věc.

<?php
$router[] = new Route('admin/<presenter>/<action>', 'Admin:Login:');
?>

Toto by měla být routa na AdminModul:LoginPresenter:defaultAction v případě url /admin.
Když uživatel zadá adresu admin/cokoliv, tak magie zařídí, že routa povede na
AdminModul:CokolivPresenter:defaultAction ?
Díky

rixi
Člen | 109
+
0
-
  1. Pri modularnej stavbe aplikacie treba k admin modulu uvadzat absolutnu cestu, tj. odkaz zacat s dvojbodkou.
$this->redirect(':Admin:Admin:default');
  1. Ano :)

Editoval rixi (23. 8. 2011 20:14)

hAssassin
Člen | 293
+
0
-

@jh >

  1. takze asi takhle (ta dvojtecka na zacatku je absolutni cesta, cili AdminModule:AdminPresenter:actionDefault, bez ty dvojtecky to bude subcesta z aktualniho modulu tak jak popisujes danou chybu):
$this->redirect(':Admin:Admin:default');
  1. Ano, myslim ze by to melo fungovat (pokud sem to spravne pochopil). Zkousel si to a nefunguje to?

@rixi > potreba to neni vzdy uvozovat dvojteckou at uz jde o modularni aplikaci ci ne (ale tam to nema vyznam). jde o to ze s dvojteckou na zacatku to je absulutni cesta a bez ni to je cesta relativni.

Editoval hAssassin (23. 8. 2011 20:14)

jh
Člen | 22
+
0
-

Ok díky všem.