Proměnná se neuloží do session

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
lukas.sirhal
Backer | 20
+
0
-

Ahoj, dostal jsem se k problému neukládání proměnných do session.
V BaseDealerPresenter si vytvářím session a sekci takto:

/** @var Nette\Http\Session */
    public $session;
    /** @var Nette\Http\SessionSection */
    public $sesPrintData;

    protected function startup() {
	parent::startup();
        $this->session = $this->context->getByType('Nette\Http\Session');
        $this->sesPrintData = $this->session->getSection("sesPrintData");
        $this->sesPrintData->setExpiration(0);
        if(!$this->sesPrintData->vals){
            $sesId = Strings::random(25);
            $this->sesPrintData->vals['sesId'] = $sesId;
        }
.
.

Pak si v PrintPresenteru kontroluji zda je sekce již plná:

if(empty($this->sesPrintData->vals['items'])){
    $this->getClearData($id);
}

A pokud není tak si vkládám do sekce takto:

$arr = array(
               "id" => $gc->id,
               "value" => $gc->value,
               "name" => $gc->name,
               "paper_id" => $papers[0]->id,
               "frame" => $frame,
               "frame_id" =>$frames[$key]["frame_id"],
               "count" => 0,
               "item_price" => $action->value*$this->percent,
               "item_total" => $action->value*$this->percent*0
           );
$this->sesPrintData->vals['items'][$key] = $arr;

Tyhle itemy vypisuji po řádcích do formuláře a ve formuláři je možnost měnit hodnoty. Takže třeba pomocí AJAX měním „paper_id“ nebo frame_id atd…

public function handleChangerowdata($rowId, $what, $value){
        if (!empty($this->sesPrintData->vals["items"])) {
            foreach ($this->sesPrintData->vals["items"] as $key => $item) {
                if ($rowId == $key) {
                    $this->sesPrintData->vals["items"][$key][$what] = (int)$value;
                }
            }
        }
    }

Používám nette 2.1 a už opravdu nevím kde hledat chybu proč mi to tu sekci neuloží.
Na stránce mám ještě jeden mini form pomocí kterého můžu přidávat další itemy. To mám řešené stejně jako je popsáno výše s tím že se vkládá za poslední index pole „items“
Přidání dalšího itemu je tedy po odeslání formuláře a pak je redirect(„this“) změna polozek je pomocí AJAXu.

FJP
Člen | 124
+
0
-

Máš zaplý na serveru modul pro session? ;)