默认情况下,Codeigniter购物车类使用其内置的会话函数。CI中的会话类可以配置为使用cookie或数据库,这意味着购物车将或者使用数据库或cookie来存储会话变量。
然而,对于我的网站,我想实现这一点:当用户没有登录时,购物车使用cookie数据;当用户登录时,购物车使用存储在数据库中的数据。这意味着cart类应该能够在cookie和数据库之间切换。
如何在不更改内置cart类的情况下实现这一点?如果这不可能,我可能不得不重写cart类,这需要一些工作。
可能有两种方法。
-
继承您的内置卡类并覆盖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
它有一些您需要的功能,但您仍然需要对其进行调整,以完全适应您的需求