Perzistentý parameter nie je dostupný pri 4×x
- Danndy
- Člen | 35
Zdravím vás.
Mám nasledovný problém s perzistentným parametrom.
Pre jazykovú mutáciu používam Kdyby/Translation, tak ako sa píše v dokumentácii mám v BasePresenteru
/** @persistent */
public $locale;
public function startup() {
parent::startup();
$this->template->locale = $this->locale;
}
Následne používam premennú $locale
v šablone
(@layout.latte) (pre zobrazenie aktuálne použitého jazyka vo formáte
vlajočky) a všetko funguje ako má, až do momentu kým sa zobrazí 404 (alebo
iný error presenter) v tomto prípade premenna $locale
má
v šablone hodnotu NULL a preto nieje možne v šablone
s touto premennou „počítať“.
Robím niekde chybu? Ako v ErrorPresenter-u sa dostanem k hodnote tejto perzistentnej premennej?
Ďakujem.
- Danndy
- Člen | 35
ErrorPresenter nededí od BasePresenter-a, ale pri napríklad
404 ErrorPresenter následne vola Error4×xPresenter ktorý od
BasePresenter-u dedí, ale aj keď si dám v BasePresenteru
dump($this->locale);
tak pri 404 má hodnotu
NULL pričom keď spustím napr HomepagePresenter tak ten istý
dump()
mi správne zobrazí hodnotu premennej
$this->locale
(sk|en|de – podla zvoleneho jazyka).
- Zuben45
- Člen | 268
Dřív jsem to řešil krkolomně přes str_replace z url match atd..
Dnes bych asi použil tento způsob – https://forum.nette.org/…-v-nette-2-2#…