CodeIgniter 是否必须在最后一步加载视图?

2023-12-05

我有一个函数

function do_something() {
    // process
    $this->load->view('some_view', $data);
    exec('mv /path/to/folder1/*.mp3 /path/to/folder2/');
}

我的目的是在输出视图后移动文件。但显然这是在渲染视图之前完成的。我的问题是,$this->load->view();必须是函数的最后一步吗?

我做了一些研究,看来我的问题类似于这个话题。正确的?


你为什么不直接使用一个post_system钩?它在最终页面发送到浏览器之后调用,这样您就可以正常加载视图,而无需回显它们。

这是一个示例控制器:

class Home extends Controller {

    function index()
    {
        $this->move_audio = TRUE;
        $this->old_folder = "/path/to/folder/";
        $this->new_folder = "/path/to/folder2/";

        $this->load->view("some_view");
    }

}

还有一个示例钩子:

function post_system()
{
    $CI =& get_instance();

    if( isset($CI->move_audio) && $CI->move_audio === TRUE)
    {
        // Trim, then add trailing slash for consitency
        $old_folder = rtrim($CI->old_folder, "/")."/*.mp3";
        $new_folder = rtrim($CI->new_folder, "/")."/";

        exec("mv {$old_folder} {$new_folder}");
    }
}

查看钩子用户指南有关设置它们的信息。他们是你的朋友!

编辑:我刚刚想到的东西......

如果您只想在一个控制器方法中执行此操作...那么使用 Phil 的方法可能会更好。这将避免对每个请求进行钩子调用,如果您只需要一次,则这是不必要的。

如果你只需要一次,你可以做的另一件事是使用 CI_output()控制器的处理程序(信息在这里)。那会像这样工作:

class Home extends Controller {

    // Initalize the var to avoid having to
    // check if it's set or not

    var $move_audio = FALSE;

    // CONTROLLER METHOD    
    function index()
    {
        $this->move_audio = TRUE;
        $this->old_folder = "/path/to/folder/";
        $this->new_folder = "/path/to/folder2/";

        $this->load->view("some_view");
    }

    // OUTPUT HANDLER
    function _output($output = "")
    {
        echo $output;

        if($this->move_audio === TRUE)
        {
            // Trim, then add trailing slash for consitency
            $old_folder = rtrim($this->old_folder, "/")."/*.mp3";
            $new_folder = rtrim($this->new_folder, "/")."/";

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

CodeIgniter 是否必须在最后一步加载视图? 的相关文章

随机推荐

  • 在C中递归创建并遍历二叉树

    我想创建一个二叉树并通过前序遍历来遍历它 并且我使用递归方法 这些代码可以编译但不能正确运行 我发现它可能无法完成CreateBitree 功能可以 但不知道问题出在哪里 include
  • 在 Android 上的 React-Native 中压缩 Base64 编码图像无法识别“数据”协议

    Issue 在 React Native 0 43 应用程序中 我们使用一个组件 该组件使用 SectionList 来渲染按天排序的照片 每个部分可以包含多个图像 照片是使用反应本机图像作物选择器库并上传到后端 或者在没有可用互联网连接的
  • 核心数据 - 无法在路径加载优化模型

    当我在装有 iOS 9 beta 5 的 iPhone 6 中通过 Xcode 6 运行应用程序时 我在控制台中收到了一些打印内容 CoreData 无法在路径 var mobile Containers Bundle Applicatio
  • 从 Android 设备调用 Web 服务

    我已经使用 python Flask 框架在本地编写了一个 Web 服务 该框架运行在localhost 5000 我通过编写从我的计算机浏览器成功运行此 Web 服务http localhost 5000 toi something 现在
  • 卸载注入的 DLL

    我有一个 DLL 我使用它注入到其他进程中SetWindowsHookEx 在 DLL 内部 我通过调用来增加模块的引用计数器GetModuleHandleEx这样我就可以控制模块何时卸载 此时 这两个 API 调用的模块引用计数 应该 为
  • 使用 PHP 使用 .pfx 证书签署 XML 文件

    我有一个 XML 文档 我想使用 PHP 使用 pfx 证书对其进行签名 我怎么能这样做呢 是否存在某些库或开源代码 或者文档的哪一部分可以帮助我 非常感谢您的帮助 请原谅我的英语不好 以下是使用 pfx 文件签署 xml 文件的最小示例
  • 让 EF 使用具有附加属性的 m:n 表 [重复]

    这个问题在这里已经有答案了 我在创建新应用程序时遇到了问题 该应用程序是关于在特定日期入职的新员工的 由于他们需要一些硬件 例如笔记本电脑 键盘等 我们希望对未来几天内即将到来的所有新员工进行概述 于是就有了以下几种Model Entry
  • 如何访问 VanillaJS 文件中的“this”上下文(Vue/Nuxt 实例)?

    我里面有一个函数 jsnuxt 2 项目中的文件 基本上我需要使用 nuxt 模块属性nuxt config像这样this nuxt options 在正常的函数内部 js file 例如 aNormalJsFile js if this
  • 当您没有类的源代码时,是否可以对对象进行 .NET 二进制序列化?

    我在用BinaryFormatter在 C 中对某些对象进行二进制序列化 但是 某些对象包含我通过 DLL 访问的类 并且没有源代码 因此我无法使用Serializable属性 有没有一种直接的方法来序列化它们 我有一个解决方法 其中包括上
  • mac dns 查找行为不当

    买了一台新 Mac 现在我正在尝试安装 更新一些东西 我遇到的第一个问题是 从内部脚本 程序 例如 git 或 ruby gem 发出的 http 请求不起作用 我将在下面举一个我使用的解决方法的示例 因为它比任何解释都更好地说明了问题 任
  • 如何将 HTML 截断为一定数量的字符?

    我有一些内容 一些来自外部来源 一些专门编写 以博客格式显示 我想在一定数量的字符后截断文本 所以目前我正在这样做 问题是 这会丢失所有格式 我只得到一大块文本 但如果我不剥离标签 显然有些标签会打开并弄乱布局 在 X 个字符后截断 同时保
  • iOS 中的 PBEWithMD5AndDES 加密

    我在 iOS 中遇到 PBEWithMD5AndDES 加密问题 我已经用它加密和解密了我的字符串 https gist github com 788840 24bc73ecd0ac3134cbd242892c74a06ac561d37b
  • 对非矩形图像区域使用 skimage

    假设我关心的是图像的一部分 我想要计算 GLCM 因为它不是矩形的 我该怎么办 我已经制作了一个屏蔽程序 将我不关心的图像部分归零 我只是不知道如何在不考虑图像的归零部分的情况下获取这个 屏蔽 图像 感谢您的帮助 如果您能够将零强度值分配给
  • 谁能解释为什么 strtotime('cast') 返回一个值?

    这并不是一个真正的问题 尽管它与我们的 if 语句冲突 但是当您输入 strtotime cast 时 它会返回一个默认为今天日期的实际值 我只是想知道是否有人知道cast这个词对于时间函数有什么意义 Thanks 它映射到 澳大利亚 阿德
  • 在 Pyramid 中的视图之间传递表单参数

    我正在创建一个表单 在提交数据之前需要用户确认 我想要一个单独的确认页面 因为我需要显示有关如何处理表单数据的大量信息 我想知道是否有一种Pythonic 方法可以在金字塔中的表单之间传递数据 提交表单会将用户带到确认页面 因此 确认视图的
  • 如何在Asp.net mvc中获取请求处理时间?

    我想记录请求处理时间Asp Net MVC 应用 我可以得到 所用的时间 来自 IIS 日志 但这次包括将响应发送回客户端浏览器所花费的网络时间 我只对 ASP NET 工作进程处理请求所花费的时间感兴趣 我可以选择写一个Http模块但我无
  • 为什么在处理 WMIC 输出并向变量赋值时会输出错误消息“Missing operand”?

    我正在处理一个批处理文件 该文件应该显示当前估计的剩余费用 但是当我运行命令时 我得到了所需的结果以及错误消息Missing operand output My code FOR F delims skip 1 i IN WMIC PATH
  • Dart json.encode 未按照 Firebase 函数的需要进行编码

    我已经研究这个问题有一段时间了 但我似乎无法弄清楚问题到底是什么 在 Dart 2 中json encode 似乎没有给我我想要的结果 我正在传递一个Map
  • Magento通过phtml文件中的锚标记调用cms页面

    我想要这样的东西 a href FaQ s a 意味着单击常见问题解答 创建名为的 cms 页面faqs来自管理面板的将被链接 调用 并显示 或者还有其他办法吗 Thanks 如果您正在 phtml 文件中写入 那么您可以使用 a href
  • CodeIgniter 是否必须在最后一步加载视图?

    我有一个函数 function do something process this gt load gt view some view data exec mv path to folder1 mp3 path to folder2 我的目