Předání session do proměnné v šabloně
- cafesk8
- Člen | 103
Zdravím,
v presenteru mám ajaxovou akci, kde si ukládám už. data do session
section frontPage
:
public function handleSaveIt($data) {
$front_page = $this->session->getSection('frontPage');
$data = json_decode($data,true) ;
foreach($data as $d => $k) {
$front_page[$d] = $k;
}
if($this->isAjax()) {
$this->sendResponse(new JsonResponse($response));
}
}
Krásně to funguje a v TRACY v sekci sessions se mi vše krásně vypíše jak má.
Problém nastane když chci na té stránce podmíněně něco v šabloně zobrazovat podle toho zda je něco uložená v session. Data v té session jsou NULL.
public function renderPredniStrana() {
$session = $this->session->getSection('frontPage');
$this->template->savedData = $session;
}
když dám v šabloně {dump $savedData}
tak mi to vypíše
toto:
Nette\Http\SessionSection
warnOnUndefined => false
session private =>
regenerated private => false
options private =>
request private =>
response private =>
cookieDomain => ""
cookiePath => "/"
cookieSecure => false
cookieHttpOnly => true
warnOnBuffer => true
code private => 200
handler private => null
name private => "frontPage"
data private => null
meta private => false
Nevíte někdo co s tím?
- MajklNajt
- Člen | 502
dáta sa načítajú do property data
až keď k ním
pristupuješ, skús v šablóne použiť
{if $savedData->offsetExists("kluc")}...vypíš niečo...{/if}
EDIT: prípadne si v presenteri pošli do šablóny iba to, čo potrebuješ:
public function renderPredniStrana() {
$session = $this->session->getSection("frontPage");
$this->template->foo = $session->offsetGet("kluc"); // eventuálne $session->kluc
}
v šablóne:
{if $foo}...vypíš niečo...{/if}
Editoval MajklNajt (2. 10. 2019 15:24)
- cafesk8
- Člen | 103
MajklNajt napsal(a):
dáta sa načítajú do property
data
až keď k ním pristupuješ, skús v šablóne použiť{if $savedData->offsetExists("kluc")}...vypíš niečo...{/if}
EDIT: prípadne si v presenteri pošli do šablóny iba to, čo potrebuješ:
public function renderPredniStrana() { $session = $this->session->getSection("frontPage"); $this->template->foo = $session->offsetGet("kluc"); // eventuálne $session->kluc }
v šablóne:
{if $foo}...vypíš niečo...{/if}
Super, takhle to již funguje. Díky