CodeIgniter挂钩显示所有页面上的内容

时间:2016-04-06 17:47:46

标签: php codeigniter session hook

我的所有网站页面上都显示了一个侧栏,每次都应显示相同的内容:

  • 现金
  • 用户名
  • 更多信息......

对于username我在常规控制器中使用会话以便正常但是对于现金,我需要调用数据库。我试过使用钩子,但我无法弄清楚如何在视图中显示信息(变量未定义)。 我在加载会话时卡住了。

我收到消息:Unable to locate the specified class: Session.php虽然我的会话库已自动加载,但我再次将其添加到钩子中,以防万一......

autoload.php

$autoload['libraries'] = array('database','session','form_validation','pagination', 'template');

我的hooks.php

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

我的get_info_general.php

class get_info_general extends CI_Controller{
        private $CI;

        public function __construct() {
            parent::__construct();
            $this->load->helper('url');     
            $this->load->library('session');     
            $this->load->library('database');     
        }  
        function get_info_general(){
            $this->load->model('usersModel');
            $cash = $this->usersModel->check_cash_player();
            $data['cash'] = $cash;
        } }

在UsersModel中:

public function check_cash_player(){                    
        $currentUserID = $this->usersModel->get_user_id();
        $query = $this->db
            ->select('cash')
            ->from('place')
            ->where('id_player', $currentUserID)
            ->get();
        return $query->row('cash');
    }

更新: 在@alexander popov建议之后,我将代码更改为:

class get_info_general {
        private $CI;

        public function __construct() {
            $CI =& get_instance();
            $CI->load->helper('url');     
            $CI->load->library('session');   
        }  
        function get_info_general(){
            $this->load->model('usersModel');
            $cash = $this->usersModel->check_cash_player();
            $data['cash'] = $cash;
        } }

我得到:Undefined property: get_info_general::$load

更新2: 使用提供的代码here我没有收到任何错误消息,我的页面也会显示。但是我的页面中仍未定义$cash。将以下代码添加到get_info_general.php并没有帮助:

$data['cash'] = $cash;
$data['main_content'] = 'loginForm';
        $this->load->view('templates/default',$data);

0 个答案:

没有答案