Přesměrování s odstraněním parametru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pheidrich
- Člen | 11
Ahoj, snažím se implementovat následující věc:
- na server přijde dotaz, který oproti „běžnému“ dotazu obsahuje
parametr navíc (
www.example.com/jedna/dve?honza=jde&c=Mh47j9k
← parametr c) - server tento parametr zpracuje
- a následně přesměruje na novou URI, která jej již neobsahuje
(
www.example.com/jedna/dve?honza=jde
)
Jak byste to řešili? Nejlogičtější mi asi přijde něco jako:
<?php
abstract class BasePresenter extends Presenter
{
protected function startup()
{
parent::startup();
if ($this->getParam('c'))
{
processParameter();
$this->redirect("aktuální request bez parametru c");
}
}
}
final class SomePresenter extends BasePresenter
{
}
?>
… jen nevím, jak si pohrát s tím aktuálním requestem a jak na něj přesměrovat. Lépe řečeno, jak dokáže přesměrovat presenter sám na sebe s tím, že si odebere jeden parametr?
Nebo přemýšlím špatně? ;-)
Editoval pheidrich (7. 10. 2009 10:51)
- Honza Marek
- Člen | 1664
Něco jako:
$params = $this->getParams();
unset($params["c"]);
$this->redirect("this", $params);
Píšu to z hlavy.
- pheidrich
- Člen | 11
LastHunter napsal(a): Já si myslím, že přesně k tomuto slouží signály.
Díky za nakopnutí! K signálům jsem se zatím ještě vůbec neprokousal…
Takže asi něco jako toto, že? :-)
<?php
public function handleC($code)
{
process($code);
$this->redirect('this');
}
?>
Editoval pheidrich (7. 10. 2009 11:28)