【问题标题】:Codeigniter Cart - saving data in database - how to approach?Codeigniter 购物车 - 将数据保存在数据库中 - 如何处理?
【发布时间】:2013-03-06 23:44:20
【问题描述】:

我需要在我的网络应用程序中处理订单和购物车方面的帮助。

我决定使用 Codeigniter 2 中内置的购物车库。

我看过一些关于那个购物车库的教程,我知道如何使用它,但我不知道:

  • 我什么时候应该在数据库中创建/保存该订单?当用户将商品添加到购物车时,或者我应该将所有订单数据保留在会话中并在用户接受订单时将其“移动”到数据库中?
  • 我应该在数据库中存储会话 ID 或其他内容吗?

我试图了解如何在 PrestaShop 中实现购物车/订单功能,但对于我这个业余 PHP 程序员来说,它看起来太复杂了。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    使用购物车的理想和好方法是将其保持在会话中,codeigniter 的购物车类正在做同样的事情,当用户下订单时,使用此数据将此订单放入数据库并执行其他操作,例如支付网关、运输。 如果您想使用用户在下一个会话中保留他的订单,例如如果用户在购物车中添加了一些产品并且他在下订单之前退出并且他是注册用户,那么您可以每次将他的购物车保存在数据库中,这样如果他没有下订单就走了,你可以在他下次登录时向他展示他的订单。

    您可以使用购物车类的$this->cart->contents(); 方法将用户购物车数据存储在数据库中。 像这样使用

    $cartContentString = serialize($this->cart->contents());
    

    你会得到一个购物车内容的字符串,你可以把这个字符串保存在数据库中,以后像这样使用它

    $cartArray = unserialize($cartContentString);
    

    【讨论】:

    • 关于为数据库序列化数据的非常有用的提示。谢谢。
    • 感谢您的 serialize() 想法。
    • 在哪里申请序列化?我应该把它放在控制器或模型中吗?可以给我看一下代码示例吗?
    • 模型将是添加它的最佳位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2013-05-21
    • 1970-01-01
    • 2020-08-02
    相关资源
    最近更新 更多