presmerovani uzivatele zpatky odkud prisel
- muflix
- Člen | 92
Dobrý den, jak mohu uživatele přesměrovat na stránku odkuď přišel ? Mám tento kód ale ani jedna varianta mi nezafungovala (klikam na odkaz a nic).
public function handleZpet(){
$url = $this->context->getService('httpRequest');
$this->redirectUrl($url->getReferer());
}
.latte
{link zpet!}
------------NEBO a chova se to STEJNE--------------------
public function actionZpet(){
$url = $this->context->getService('httpRequest');
$this->redirectUrl($url->getReferer());
}
.latte
{link zpet}
děkuji
Editoval muflix (18. 9. 2012 1:22)
- h4kuna
- Backer | 740
Jasný protože referer po kliknutí na zpět bude mít pravděpodobně jinou url než požaduješ. Udělej si dump zkontroluj si co kdy čteš z referera a ulož si to třeba do session. Druhá možnost je pokud to jde využít v presenteru jsou metody
<?php
$key = $this->storeRequest();
$this->restoreRequest($key);
?>
Editoval h4kuna (18. 9. 2012 7:11)
- JakubTN
- Bronze Partner | 49
Pomoct by ti mohol aj tento clanok, aj ked sa tyka formularov, storeRequest a restoreRequest vysvetluje pekne.
- muflix
- Člen | 92
děkuji článek jsem přečetl a udělal jsem to takto, mám výpis zboží a po kliku na odkaz koupit mě handler koupit přesměruje na stránku košík, kde chci mít odkaz zpět abych se dostal na výpis zboží.
/** @persistent */
public $backlink;
public function beforeRenderProducts(){
$this->backlink=$this->storeRequest();
}
public function handleZpet(){
$this->restoreRequest($this->backlink);
}
public function handleKoupit(...){ ...
$this->redirect('Homepage:kosik');
}
public function renderKosik(){
...
}
<a href="{link zpet!}">Zpet</a>
výsledek je ten, že odkaz Zpet zavolá handler a nic nedělá (nebo nic
viditelného).
?:-)
edit: případně pokuď použiju
public function handleZpet(){
$this->redirect($this->restoreRequest($this->backlink));
}
tak mi to hodí error
Destination must be non-empty string
Editoval muflix (18. 9. 2012 11:35)