【问题标题】:CodeIgniter - Shopping Cart on all pagesCodeIgniter - 所有页面上的购物车
【发布时间】:2013-04-30 08:48:52
【问题描述】:

我必须在我的电子商务网站(CodeIgniter、MVC Paradigm)的多个页面上放置一个购物车。

我真的不想在我的所有控制器中调用这个小部件背后的模型。

我知道解决方案可能会调用自动加载器中的模型,但有时我不想显示购物车。

因此,解决方案可能是在相关视图中调用模型。但是,既然它尊重(我认为)MVC 范式,恐怕 CodeIgniter 并不是真的这样设计的。

保持清晰、简单和可维护的架构的最佳解决方案是什么?

谢谢!

【问题讨论】:

  • 是的,CodeIgniter 没有实现 MVC 或任何受 MVC 启发的设计模式。它所做的是将 Rails 结构松散地应用于 PHP。
  • 好的,它为我点亮了一切。谢谢。

标签: php codeigniter shopping-cart


【解决方案1】:

钩子: 您可以尝试创建一个读取/计算购物卡信息的 Hook 并将其设置为运行'post_controller'。 这样,您的钩子将在每个控制器之后运行,将购物车信息设置为会话或闪存 var 以从您的视图中访问。

更多信息在这里: http://ellislab.com/codeigniter/user-guide/general/hooks.html

您也可以从您的视图中调用助手, 不建议这样做,但它会起作用。

将购物车数据的查询代码放在cart_helper.php 中,并从您的视图中调用它,就像调用任何其他函数一样。

请记住,您的助手必须同时加载,因此要么自动加载它,要么在控制器上设置加载 __construct()

【讨论】:

  • 谢谢,对我帮助很大!
【解决方案2】:

您可以创建自己的控制器并扩展CI控制器,然后根据条件加载模型。

这是参考:http://ellislab.com/codeigniter/user-guide/general/core_classes.html

【讨论】:

    【解决方案3】:

    通过 ajax 请求调用 cartData 怎么样?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 2017-06-17
      相关资源
      最近更新 更多