HMVC 和动态小部件

2024-04-17

背景

我使用“小部件”一词作为具有自己的控制器(因此有自己的操作)的部分视图,并且它几乎放置在所有页面中。我通过 HMVC 实现了它的渲染,这非常棒。

Problem

现在的问题是小部件本身执行操作。考虑一下购物车小部件。该小部件被放置在所有页面中,以便用户可以一直看到他/她的东西。小部件具有与其相关的操作,例如:RemoveItem、RefreshCart、ApplyDiscountCoupon 等。此类操作应由按钮或链接触发,并且链接应类似于(在 HMVC 中):

<a href='<?site_url()?>/cart/cart/removeitem/the_item_id'>Remove this item</a>

好的。现在用户单击该链接,加载购物车模块和购物车控制器并执行操作,该操作应类似于:

function removeitem($itemid)
{
     // remove the item from db
     ...

     // "load the view"  ???
}

如您所见,我的问题是如何在 HMVC 模块中加载视图。问题是,如果我只加载购物车视图,它只会显示我的购物车,并且我不能只重定向或加载主页,因为它可以是任何主页,也就是说:购物车可以位于任何主页中(选择产品、继续购买、查看产品详细信息、账单信息、结帐等)。 :/

另外一件事:一个要求是我不能在这个项目中使用AJAX。

你知道 HMVC 如何处理这个问题吗?

提前致谢。


好的。社区没有运气。尽管如此,我还是找到了一个解决方法。希望对某人有帮助。

HMVC 对此没有自然的解决方案。所以我决定使用这个解决方法:

  1. 在每个主控制器(即没有小部件,没有部分视图)中,我以这种方式获取会话中的当前 url(/controllers/keep_buying.php):

    class Keep_buying extends Controller
    {
        function Keep_buying()
        {
            parent::Controller();
            $this->session->set_userdata('main_uri', uri_string()); 
        }
        ...
    }
    
  2. 然后在我的部分视图小部件(HMVC 模块视图)中,我有一个到我的小部件控制器的正常链接(/modules/cart/views/cart_show.php):

    <a class="button" href="cart/cart/additem">Add Item</a>  
    
  3. 在控制器操作(HMVC 模块控制器操作)中,我检索当前主页,执行操作,然后重定向到该页面,这将隐式进入我的小部件流(由于 HMVC)。

    class Cart extends Controller
    {
        ...
        function additem()
        {
            $to_redirect = $this->session->userdata('main_uri');
            // add-item work stuff...
            redirect($to_redirect);
        }
    }
    

那是。恕我直言,这不是理想的方法,但很有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HMVC 和动态小部件 的相关文章

  • 关于重定向应该如何工作的问题

    所以我有一个网络应用程序 我正在使用一个表单 该表单要求在提交之前填充所有字段 如果您尝试在未填充字段的情况下提交应用程序 它会再次加载带有错误的页面 填写完所有字段并单击 提交 后 它会重定向到同一页面并显示一条从 flashdata 生
  • 如何删除Codeigniter中form_open_multipart()中的action属性?

    有没有办法可以删除 CodeIgniter 中的操作属性 代码通常是这样的 form open multipart person add attributes 我希望我可以省略第一个参数 这样我就不能在标记中包含操作属性 感谢那些可以提供帮
  • CodeIgniter SMTP 电子邮件消息 - 用等号替换字符

    我正在使用 CodeIgniter 电子邮件库通过我们的 Exchange 服务器发送电子邮件 我遇到的问题是电子邮件的内容变得混乱 有一些单词被等号 替换 我尝试了 2 个不同的 Exchange 服务器 它们位于不同的位置并且没有任何关
  • codeigniter、result() 与 result_array()

    我都用result and result array 通常我喜欢将结果作为数组 这就是我主要使用 result array 的原因 但我想知道我应该遵循哪种更好的方法 就性能而言 其中哪一个使用起来更有效 这是我在 codeigniter
  • Codeigniter 错误“无法使用提供的设置连接到数据库服务器”

    当我尝试在我的域上上传此项目时 我遇到错误 无法使用提供的设置连接到您的数据库服务器 我已经检查了我的配置文件 and 数据库 php文件且所有信息均正确 将 db debug 设置为 false 解决了我的问题 我用的是雪豹 编辑 db
  • MySQL - 如何根据输入的长/纬度选择经度和纬度以逗号分隔的行?

    好的 我的数据库表中有以下两列 其中包含以下长 纬度 longitude 2 2426305000000184 0 7077123000000256 latitude 53 4807593 51 5459269 到目前为止我有这个查询 fu
  • codeigniter 链接到另一个页面

    我是 codeigniter 框架的新手 我的 href 链接有问题 在我的主页中 我有一些菜单 可以转到不同的页面 例如 在正常的 php 中 如果我想进入 销售书籍 页面 那么我只需将 sellBook php 放在 href 链接中
  • 每页记录数允许用户选择 - codeigniter 分页

    我有有效的分页功能 我已将限制设置为每页 5 条记录 但我希望用户能够根据需要进行更改 问题是我不知道该怎么做 在视图中 我创建了下拉菜单 因此用户可以选择他想要每页查看多少条记录 ul class dropdown menu li a h
  • 在 CodeIgniter 中使用模型

    有人可以向我解释什么时候在 CI 中使用模型是一个好的实践吗 维基百科上的一篇文章将 CI 模型称为 完全可选且很少需要 这是真的吗 假设您需要调用一个名为get user info从数据库检索用户信息 你可以有这样的函数 class Ho
  • 分离 CodeIgniter 配置文件 Git 以便公开发布

    我即将启动一个基于 CodeIgniter 的项目 并计划使用 Git 作为我们的 DVCS 我将与其他一些开发人员合作 中央 原始 服务器是私人托管的 但我也想开源它 稍后将代码发布到Github 我的问题是 有没有办法在 Git 中分离
  • CodeIgniter:帮助从网页获取元标记的类/库?

    我正在使用代码点火器 我想我使用哪个 php 框架并不重要 但在我编写自己的类之前 已经编写了另一个类 该类允许用户获取任何站点的页面标题和元标记 关键字 描述 如果有的话 任何能够做到这一点的 PHP 类都很棒 谢谢大家 你应该看看这个类
  • PHP 7 用户会话问题 - 无法初始化存储模块

    在 PHP 7 0 中使用各种 PHP 框架会话驱动程序时存在错误 我最初在使用 CodeIgniter 数据库驱动程序时遇到了这个问题 并认为这是一个 CodeIgniter 问题 但后来在多个会话驱动程序和多个框架上遇到了这个问题 此时
  • 调用静态方法时发生致命错误

    所以 这是我的情况 我正在使用 CodeIgniter 我已经设置了一个助手 DK 文件夹下的 string helper 我已经在 dk string helper php 中设置了 dkString 类 static function
  • IIS 7 URL 重写

    我已经为此工作了几个小时 现在正试图让它发挥作用 我有一个 CodeIgniter 网站 曾经在 Apache 服务器上运行良好 我使用 Apache URL Rewriter 作为 URL 来隐藏 index php 由于某种原因 我无法
  • 无法访问控制器中的获取发布数据:Codeigniter

    我正在我的 codeigniter 项目中使用 fetch 发出发布请求 请求看起来像这样 fetch myurl mycontroller method POST headers Content Type application json
  • Codeigniter htaccess 和 base_url

    我安装了 codeigniter 并开始在上面编写一些代码 首先我想删除 index php 并对其进行一些研究 我用下面的一个小 htaccess 代码将其删除 RewriteEngine on RewriteCond 1 index p
  • 如何避免 codeigniter 缓存

    我们在 codeigniter 框架中开发了一个网站 我们面临 codeigniter 缓存问题 问题是这样的 当用户登录时 我们的标题栏信息应该是Welcome Mr xxxxx 如果用户注销 我们的标题信息应该是 Welcome Gue
  • 如何在 CodeIgniter 中组织模板结构?

    我将为我的最终 Web 开发课程项目构建一个 CMS 我的老师向我提出了在 MVC 系统中创建它的挑战 现在我将使用 CodeIgniter 因此 我想知道您如何组织文件 文件夹结构 我将使用一个简单的模板系统 现在我有一个 templat
  • 如何在codeigniter中从数据库返回最后一条记录?

    我正在尝试获取我拥有数据的最后日期 所以我想打印 date data 列中的最后一个日期 在模型中 public function last record query this gt db gt select LAST date data
  • CodeIgniter - 为什么使用 xss_clean

    如果我正在清理我的数据库插入 并且还转义我编写的 HTMLhtmlentities text ENT COMPAT UTF 8 是否还需要使用 xss clean 过滤输入 它还有什么其他好处 xss clean http docs gip

随机推荐

  • 用于与 TCP 套接字对话的 Cocoa-Touch 框架? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个守护程序在锁定到 TCP IP 端口的服务器上运行 我正在寻找当前是否有任何支持 iPhone
  • php中如何去除标点符号

    除了这些字符之外 如何删除标点符号 这是一个巧妙的方法 preg replace punct target
  • 为多个页面编写一次 Twitter Bootstrap 导航栏

    我正在尝试开始使用 Twitter Bootstrap 3 我想让每个导航栏项目都转到新的 href 例如 我希望导航栏项目 关于 和 联系 链接到对应的about html and contact html pages 我发现的许多网站似
  • 输入时自动完成,使内容跳转

    我有一个输入 在 Chrome 中 当弹出自动完成菜单并且您将鼠标悬停在其中一个选项上时 输入下方的内容会跳转 就像自动完成选择由于某种原因添加垂直填充一样 我怎样才能阻止这个 这很烦人 这是一个例子 小提琴演示 https jsfiddl
  • 如何使用扩展功能保存分层图像

    我正在使用扩展函数将 uiview 保存为 uiimage 该代码用于保存 uiimage 然而 我想做的是在保存到照片库的图像上保存透明图像 所以我尝试使用扩展函数保存分层图像 现在只有 uiivew 被保存 第二层没有被保存 class
  • Web API 返回 csv 文件

    我需要从 Web API 控制器获取 csv 文件 我无法显示 另存为 对话框 页面上仅显示文本输出 我尝试了两者 从 jquery 调用 Export 以及普通的旧 html 控制器 System Web Http HttpGet pub
  • 溢出-y:滚动在 Firefox 中不起作用

    请参考网址 http jsfiddle net 8tFnG 1 http jsfiddle net 8tFnG 1 table border 1 cellspacing 0 cellpadding 1 width 100 table
  • 获取任何给定字符的宽度(以像素为单位)

    我有一个非常棒的想法 但无法找出 NET Framework 中是否有任何类 任何版本 最好是 3 5 或 4 0 允许您传入字符 并获取该字符的宽度 以像素为单位 无论使用哪种字体 字体大小或字体装饰 有人可以指出我正确的方向吗 像这样的
  • 使用JS显示计算结果的HTML输出

    我正在尝试使用 HTML 和 JS 构建一个卡路里计算器 目前正在努力在屏幕上 或通过 console log 显示输出 我知道我正在做一些非常基本的错误 但目前无法确定那是什么 下面是我的 HTML 和 JS 代码 document ge
  • 连接表的最佳 SQL 索引

    考虑到性能改进 我想知道哪些索引对连接表 特别是在 Rails 3 has and belongs to many 上下文中使用 是否有帮助以及哪些索引有帮助 模型和表格设置 我的模型是Foo and Bar根据 Rails 约定 我有一个
  • 未修改的 iOS7 Apple GLPaint 示例混合问题

    在苹果的GLPaint https developer apple com library ios samplecode GLPaint Introduction Intro html例如 用户可以使用半透明画笔在表面上绘图并改变颜色 然而
  • 我可以在 VSCode IDE 上设置要使用的打字稿配置“tsconfig.json”路径吗?

    我有一个如下的项目结构 my app configs tsconfig json webpack merge ts webpack dev config ts webpack prod config ts node modules src
  • 在休眠启动时删除所有表

    出于开发目的 如何配置 hibernate 在运行之前删除所有表 我不想在运行代码之前不断手动删除所有表 我已经在使用了
  • Angular ng 消息在 ng 重复表单上显示错误

    我想用 ng Repeat 生成输入 问题是当我遇到错误时 这仅适用于最后一个元素 我怎样才能使其适用于每个元素
  • 如何从 ASP.NET MVC 中的控制器构造函数查找文件夹的路径?

    我试图获取网站根目录中文件夹的路径 并在调用控制器构造函数时将其保存到类属性中 public TestController Controller string temp public TestController temp 我已经尝试过以下
  • SQL 实现层次关系

    我有一个表 其中产品根据层次关系 如树结构 进行分类 我必须选择一个类别以及任何级别的所有子类别 见下图 例如我想要一个sql语句 当我查询传递id 11时 它返回我 19 20 21 22 23 24 25 26 在 MySQL 中存储分
  • 获取 JPA 本机插入查询生成的标识符

    出于性能原因 我需要使用一些本机查询将新对象插入数据库 我有一个非常复杂的 JPA 持久层 它管理我通常的实体读写 我想使用这个持久层来运行本机查询 我知道我需要方法 EntityManager createNativeQuery Stri
  • 向 Shiny 应用程序添加多个反应图和表格

    我正在开发一个闪亮的应用程序 在我工作的过程中 我一直在以随意的方式添加数字和表格 我希望有一个更好的框架 以便随着它的进一步发展 我可以灵活地将反应性图形和表格添加到输出中 目前 我一直在使用 tabPanel 和 Fluidrow 添加
  • 使用 Log4Net 格式化日期时间

    我想在使用 Log4Net 编写的日志文件中显示时间戳 HH mm ss 我希望该值采用中部时间 但我不希望出现偏移量 理想情况下 我希望它能够阅读
  • HMVC 和动态小部件

    背景 我使用 小部件 一词作为具有自己的控制器 因此有自己的操作 的部分视图 并且它几乎放置在所有页面中 我通过 HMVC 实现了它的渲染 这非常棒 Problem 现在的问题是小部件本身执行操作 考虑一下购物车小部件 该小部件被放置在所有