Application::restoreRequest
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pmg
- Člen | 372
Rozhodl jsem se trochu prozkoumat zázračný akrabat a v
AuthPresenter
jsem spatřil tuto magickou konstrukci:
$this->getApplication()->restoreRequest($backlink);
$this->redirect('Dashboard:');
Při obnovení požadavku dojde k redirektu, a to i přesto, že Application::restoreRequest
vyhazuje jen ForwardingException
. Tipnete si proč? Odpověď.
Navrhuju přidat možnost, jaká výjimka se bude vyhazovat. Myslím, že ve
většině případů je lepší přesměrovat. Jestli je to všechno expected
behaviour, potom se mi nelíbí, že se neposílá S303_SEE_OTHER
ani S303_POST_GET
.
Ještě magická slova na závěr: resit. dg
Díky.
- Jod
- Člen | 701
JJ, ja potrebujem presmerovať aj pri ajaxovom requeste, čo mi doteraz nefungovalo poriadne.
try {
$this->getApplication()->restoreRequest($this->backlink);
} catch (ForwardingException $e) {
$httpRequest = Environment::getHttpRequest();
$uri = $this->getApplication()->getRouter()->constructUrl($e->getRequest(), $httpRequest);
$this->redirectUri($uri);
}
Editoval Jod (10. 3. 2009 8:54)