Volání storeRequest v BasePresenteru vyvolá smičku

Croc
Člen | 270
+
0
-

Zdravím,
potřeboval bych na každé stránce vygenerovat backlink, a umístit jej na vlastní tlačítko zpět.

Umístil jsem storeRequest do BasePresenteru do startup, ale výsledkem je nekonečná smyčka přesměrování. Jak je to možné?

Je pro toto nějaké řešení?

Díky moc

Editoval Croc (12. 3. 2019 12:20)

nightfish
Člen | 468
+
0
-

Croc napsal(a):
Umístil jsem storeRequest do BasePresenteru do startup, ale výsledkem je nekonečná smička přesměrování. Jak je to možné?

storeRequest() sám o sobě takové chování nezpůsobí. Nemůže za to třeba kód, který řeší obsluhu tvého tlačítka Zpět? Bez konkrétního kódu ti víc poradit neumím.

Editoval nightfish (12. 3. 2019 10:52)

Croc
Člen | 270
+
0
-

Díky za nasměrování :)

Zdá se, že nakonec vyřešeno takto:

// Base presenter

    /**
     * @var string|null
     * @persistent
     */
    public $bl;

    /**
     * @var string|null
     */
    public $bl_new;

	//....

	public function startup() {
        parent::startup();
	    $this->bl = $this->getParameter("bl");
	}

	/**
     * @return string|null
     */
    public function getBackLink(): ?string {
        if (empty($this->bl_new)) {
            $this->bl_new = $this->storeRequest();
        }

        return $this->bl_new;
    }

    /**
     * @return string|null
     */
    public function getPreviousBackLink(): ?string {
        return $this->bl;
    }

    /**
     * @param string|null $bl
     */
    public function handleBacklink(?string $bl) {
        $this->restoreRequest($bl);
    }

Pro tlačítko zpět pak si getnu $bl parametr metodou getPreviousBackLink a pro link na další stránku getBackLink.

Editoval Croc (12. 3. 2019 11:56)