douchuang8359 2015-05-15 03:56
浏览 6
已采纳

将代码应用于codeigniter中的所有控制器

i have a simple code where i place it in my controller's constructor

$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");

i use this code for the safety of logout. my question is, Is there a way to put/declare my code as global for each of my controllers? because it will be hard to hard code everything on each controller's constructor.

Thank you for the help.

  • 写回答

4条回答 默认 最新

  • dqve65954 2015-05-15 10:18
    关注

    I like all the answers but the best approach is to use hooks. First Add this to your hooks.php

     $hook['display_override'] = array(
        'class'    => 'RouteProcess',
        'function' => 'afterroute',
        'filename' => 'RouteProcess.php',
        'filepath' => 'hooks',
        'params'   => array()
     );
    

    Then go to hooks/ folder and create RoutesProcess.php Create the file below:

    class RouteProcess{
    function afterroute(){
        $this->CI =&get_instance();
         $this->CI->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
        $this->CI->output->set_header("Pragma: no-cache");
        echo $this->CI->output->get_output();
    }
    }
    

    The good thing about this is it does not require __construct() of your controller to be called which can be overridden. This will be called no matter what.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要