Framework Nette

Nette: Návrat na předchozí stránku po odeslání formuláře

Po odeslání formuláře se často potřebujeme vrátit na předchozí stránku.

Řešení: Před přechodem na stránku s formulářem uložíme url počáteční stránky do sessions. Po odeslání formuláře a vykonání potřebného kódu přečteme uloženou url adresu a provedeme přesměrování.

Abychom tento proces nemuseli provádět ručně, využijeme metody Nette storeRequest()restoreRequest(), které jsou k této činnosti určeny.

Základní nastavení

V základním presenteru si vytvoříme proměnou pro přenášení hodnoty zpětného odkazu, nazveme ji např. backlink:

<?php

class BasePresenter
{

    /**
     * @var string
     * @persistent
     */
    public $backlink = '';

}

Uložení url

Při přesměrování uložíme url aktuální adresy pomocí metody storeRequest():

$this->redirect('Sign:in', ['backlink' => $this->storeRequest()]);

Návrat na uloženou url

K vrácení na uloženou url adresu stránky použijeme metodu restoreRequest().
Následně voláme metodu redirect() pro případ, kdy proměnná $backlink žádnou uloženou url adresu neobsahuje.

$this->restoreRequest($this->backlink);
$this->redirect('Home:');

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *