我必须在我的电子商务网站(CodeIgniter,MVC Paradigm)的几个页面上放置一个购物车。
我真的不想在我的所有控制器中调用这个小部件背后的模型。
我知道一个解决方案可能会调用自动加载器中的模型,但是,有时,我不想显示购物车。
因此,解决方案可能是在相关视图中调用模型。但是,由于它尊重(我认为)MVC 范式,恐怕 CodeIgniter 并不是真的像那样设计的。
保持清晰、简单和可维护的架构的最佳解决方案是什么?
谢谢 !
我必须在我的电子商务网站(CodeIgniter,MVC Paradigm)的几个页面上放置一个购物车。
我真的不想在我的所有控制器中调用这个小部件背后的模型。
我知道一个解决方案可能会调用自动加载器中的模型,但是,有时,我不想显示购物车。
因此,解决方案可能是在相关视图中调用模型。但是,由于它尊重(我认为)MVC 范式,恐怕 CodeIgniter 并不是真的像那样设计的。
保持清晰、简单和可维护的架构的最佳解决方案是什么?
谢谢 !
您可以创建自己的控制器并扩展 CI 控制器,然后根据条件加载模型。
这是参考:http ://ellislab.com/codeigniter/user-guide/general/core_classes.html
通过 ajax 请求调用 cartData 怎么样?
Hook:您可以尝试创建一个读取/计算购物卡信息的 Hook 并将其设置为 run 'post_controller'
。这样,您的钩子将在每个控制器之后运行,将购物车信息设置为会话或 flash var 以从您的视图中访问。
更多信息在这里: http ://ellislab.com/codeigniter/user-guide/general/hooks.html
或者,您可以从您的视图中调用助手,不建议这样做,但它会起作用。
将购物车数据的查询代码放在 a 中cart_helper.php
,并从您的视图中调用它,就像调用任何其他函数一样。
请记住,您的助手必须同时加载,因此要么自动加载它,要么在控制器上设置负载 __construct()