默认情况下,Codeigniter 购物车类使用其内置的会话功能。CI 中的 Session 类可以配置为使用 cookie 或数据库,这意味着购物车将使用数据库或cookie来存储会话变量。
但是对于我的网站,我想实现这一点:当用户未登录时,购物车使用 cookie 数据;当用户登录时,购物车使用存储在数据库中的数据。这意味着购物车类应该能够在 cookie 和数据库之间切换。
如何在不更改内置购物车类的情况下实现这一目标?如果那不可能,我可能不得不重写需要一些工作的购物车类。
默认情况下,Codeigniter 购物车类使用其内置的会话功能。CI 中的 Session 类可以配置为使用 cookie 或数据库,这意味着购物车将使用数据库或cookie来存储会话变量。
但是对于我的网站,我想实现这一点:当用户未登录时,购物车使用 cookie 数据;当用户登录时,购物车使用存储在数据库中的数据。这意味着购物车类应该能够在 cookie 和数据库之间切换。
如何在不更改内置购物车类的情况下实现这一目标?如果那不可能,我可能不得不重写需要一些工作的购物车类。
有两种可能的方法。
继承您的内置卡片类并覆盖 product_insert、product_update 和 product_delete 方法。这更清洁,并为您提供更好的可定制性。您需要的功能非常简单,您可以使用类似的方法来实现。
function product_insert() {
checkUserSignedIn();
if(true) {
parent::product_insert();
} else {
doYourthingHere();
}
}
覆盖所有像这样的 crud 方法,你可以实现你想要的。
http://codeigniter.com/forums/viewthread/212926/P10/#1006680
它具有您需要的一些功能,但您仍然必须对其进行调整以完全适合您的要求