我的所有网站页面上都显示了一个侧栏,每次都应显示相同的内容:
对于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);