Proč redirect vyhazuje silent AbortException

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

Ahoj,
zajímalo by mě, proč metoda redirect presenteru vyhazuje silent abort exception?

Editoval Mesiah (7. 9. 2013 21:17)

besanek
Člen | 128
+
0
-

Zkus se podívat jak funguje presenter, především metoda run() ;)

Filip Procházka
Moderator | 4668
+
0
-

Redirect musí přerušit běh presenteru za všech okolností. To ti zaručí jedině výjimka. Jak říká kolega, koukni jak funguje UI\Presenter::run()

Gaprielko
Člen | 42
+
0
-

Nechcem otvarat novu temu, tak pisem tu.

Mam taky problem, ze ak zavolam redirect (bez try catch), tak sa mi vynimka redirectu (AbortException) zobrazi v ladenke a nedojde k redirectu.

Sprava sa mi to takto len v pripade, ze bol user prihlaseny, mal otvoreny formular, casom doslo kvoli neaktivite k odhlaseniu usera a pri refresh stranky s linkou, ktora generuje form checkujem ci je user lognuty a ked nie, pouzivam redirect. No stranka mi zobrazi AbortException v ladenke miesto toho aby doslo k redirectu.

Editoval Gaprielko (4. 2. 2014 16:43)

David Matějka
Moderator | 6445
+
0
-

a kde se spousti ten redirect?

David Grudl
Nette Core | 8228
+
0
-

Typoval bych, že až v šabloně, tedy mimo run().

Gaprielko
Člen | 42
+
0
-

Mam to trosku zlozitejsie, ale je to v init() funkcii formularu, ktora je volana hned za konstruktorom formulara. Ten je vytvarany pomocou tovarnicky v contoleri, ktory mi zobrazuje modalne okna cez Bootstrap. Dany controler je vytvarany cez createComponent z ineho controlera, ktory mi zobrazuje pages a ktory je vytvarany presenterom.

V danej init funckcii checkujem ci je user lognuty a ak nie, tak chcem presmerovat na homepage aby sa form nevytvaral.

Ale ak nad tym uvazujem, tak David bude mat pravdu. Ano, bude to vytvarane v sablone, lebo generovanie tych modalnych oknien mam tak, ze co controlera poslem len jeho nazov a ten mi v sablone vola createComponent a vytvara formular. Da sa to nejako vyriesit, aby som nemenil generovanie tych modalnych okien? Odchytenim vynimky?

Editoval Gaprielko (5. 2. 2014 9:28)

Jan Endel
Člen | 1016
+
0
-

stačí si zavolat už v presenteru $this[‚modalWindow‘]. Komponenty se vytvářejí lazy, takže stačí si na ni šáhnout a vytvoří se dřív a redirect se provede.