backlink – restoreRequest()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- 22
- Člen | 1478
mám problem s redirectem pomocí restoreRequest.
BasePresenter
abstract class BasePresenter extends Presenter
{
public function startup(){
parent::startup();
$user = Environment::getUser();
$this->template->access = $user->isAuthenticated();
if($user->isAuthenticated()){
$this->template->user = $user->getIdentity()->getName();
}
public function handleEditovat(){
$id = Environment::getUser()->getIdentity()->getData();
$id = $id['id'];
$backlink = $this->getApplication()->storeRequest();
}
}
LoginPresenter
final class LoginPresenter extends BasePresenter {
public function createComponentActualForm(){
$form = new AppForm;
...
return $form;
}
public function login(SubmitButton $button){
$set = $button->getForm()->getValues();
$username = $set['user'];
$password = $set['pass'];
$user = Environment::getUser();
if($set['remember']){
$user->setExpiration('+ 1 year',FALSE);
} else {
$user->setExpiration('+ 1 hour');
}
try {
$user->authenticate($username, $password);
...
$this->flashMessage($address->firma.': Přihlášení proběhlo úspěšně.','flashSuccess');
$this->getApplication()->restoreRequest($this->getParam('backlink'));
}
catch (AuthenticationException $e) {
$this->flashMessage('Chyba: '.$e->getMessage(),'flashWarning');
$this->redirect('this',$this->getParam('backlink'));
}
}
public function renderDefault($backlink){
$this->template->titleForm = 'Přihlášení k účtu';
}
}
Problém je, že mě to nevrátí zpátky na stránku, odkud jsem do loginu skočil..nevím, jestli není problém to, že storeRequest se vytváří v abstraktním presenteru…
Editoval 22 (29. 3. 2010 16:18)
- 22
- Člen | 1478
dokonce má i tu stejnou, jako je vygenerovaná po clicku „Editovat“, akorát přesměrování proběhne na LoginPresenter a ne na stránku, odkud se přišlo…tzn. $backlink se generuje v BasePresenteru, ale je vkládán do všech potomků, po kliknutí na přihlásit, by měl předat $backlink do LoginPresenteru, což se stane, a Login Presenter by měl po přihlášení se vrátit na původní stránku. Fakt nevím..
Editoval 22 (29. 3. 2010 14:27)