你可以使用PHP的接口Serializable接口:http://php.net/manual/de/class.serializable.php
你可以用它來你的車的一個實例轉換成更高效值(你定義了什麼存儲),在你的情況下,這是一個二維數組。
嘗試這樣:
<?php
class Cart implements Serializable {
// your normal code for the Cart class
public function serialize() {
$cartData = array();
foreach($this->cartItems as $item) {
$cartData[] = array(
'count' => $item->getCount(),
'productId' => $item->getId()
);
}
return serialize($cartData);
}
public function unserialize($cartData) {
$this->cartItem = array();
foreach($cartData as $item) {
// replace this with the appropriate propel code
$product = loadProductWithPropelById($item['id']);
$this->cartItems[] = new CartItem($item['count'], $product);
}
}
}
?>
然後使用序列化存儲車在會話和檢索它:
<?php
// Store cart to session
$_SESSION['cart'] = serialize($cart);
// get cart from session
$cart = unserialize($_SESSION['cart']);
?>
與您的項目好運!
將購物車數據存儲在數據庫中沒有任何問題。請參閱http://stackoverflow.com/questions/297576/storing-shopping-cart-in-session – Phil