restoreRequest POST požadavku neodešle formulář
- uestla
- Backer | 799
Zdravím.
V aplikaci používám následující flow:
// nepovolené odeslání formuláře - zachycení signálu a uložení requestu (psáno pseudokódem)
BasePresenter::startup = function {
if ($this->signal !== NULL
&& !$this->user->isAllowed($this->name, Helpers::signalToString($this->signal))) {
$this->backlink = $this->storeRequest();
}
};
// přihlášení uživatele přes fásbuk
HomepagePresenter::actionFacebookLogin = function () {
$this->user->login( ... );
$this->redirect('restore'); // restoreRequest se záměrně nevolá zde kvůli forwardu
};
// vyvolání uloženého requestu
HomepagePresenter::actionRestore = function () {
$this->restoreRequest($this->backlink);
$this->redirect('Homepage:default'); // přesměrování v případě, že request nebyl nalezen
};
Ze záhadných důvodů se mi po příhlášení neodešle formulář.
$backlink
se mi persistuje správně, dokonce se mi daří
vydumpovat request tímto způsobem:
if ($this->request->hasFlag(Nette\Application\Request::RESTORED)) {
dump($this->request); die();
}
Ukládaný a problémový request je typu POST
a směřuje na
Homepage:default
se signálem myForm-form-submit
.
Výše uvedeným způsobem si ale request vydumpuji i v
renderDefault()
, kde už by měl být form dávno zpracován, ale
to se nestane!
Prosím poradí někdo?
- uestla
- Backer | 799
V rámci monologu nejspíše uzavřu pátrání:
Application\Request
sice má metodu POST
, nicméně
metoda HTTP požadavku, podle kterého se detekce odeslání formuláře
řídí, je GET
, čili se odeslání nedetekuje a formulář se
logicky nezpracuje.
Pokud dovolíte, nechal bych zde tohle vlákno minimálně jako niezabudku pro sebe. Děkuju.