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
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"];
}