Session a vícerozměrné pole

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Hafran
Člen | 121
+
0
-

Zdravím zajímalo by mě jak použít v Nette\Http\Session vícerozměrné pole pro použití v košíku. Respektive nestačí mi vědět počet kusů, ještě potřebuji vědět na jak dlouho je objednává.

Pokud použiji tento kód (přejatý ± zde z fóra):
Dostanu notice: Indirect modification of overloaded element of Nette\Http\SessionSection has no effect

	public function addCount(Item $item, $count = 1) {
		if (isset($this->cart[$item->id])) {
			$this->cart[$item->id]["count"] = $this->cart[$item->id]["count"] + $count;
		} else {
			$this->cart[$item->id]["count"] = $count;
		}
		return $this->cart[$item->id]["count"];
}

Lze to obejít pokud použiji ArrayObject:
Ale hůř se s ním pracuje a hlavně nechápu proč to funguje, takže to nechci použít ;)

public function addCount(Item $item, $count = 1) {
		if (isset($this->cart[$item->id])) {
			$this->cart[$item->id]["count"] += $count;
		} else {
			$this->cart[$item->id] = new \ArrayObject(array("count" => $count, "duration" => 1));
	}
	return $this->cart[$item->id]["count"];
}
Oggy
Člen | 306
+
0
-

Stejný problém :-) Kdy se ti hůř pracuje s ArrayObjectem?