我的codeigniter助手问题。
这是我调用视图的控制器:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
function __construct() {
parent::__construct();
}
function index() {
$this->load->view('inc/header');
$this->load->view('login_view');
$this->load->view('inc/footer');
}
}
这样可以正常工作,但是我有一个多个具有多个可以调用视图的函数的控制器。
所以我想我做了一个帮手:
function view($site) {
$this->load->view('inc/header');
$this->load->view($site);
$this->load->view('inc/footer');
}
当我这样称呼这个帮助时:
view('login_view');
我收到此错误:
> Fatal error: Using $this when not in object context in C:\.....\application\helpers\custom_helper.php on line 23
第23行=
$this->load->view('inc/header');
此代码有什么问题?
答案 0 :(得分:1)
构建帮助程序时,必须使用get_instance函数。这允许您的函数使用CodeIgniter资源。
所以,你的功能看起来像这样;
function view($site)
{
$CI =& get_instance();
$CI->load->view('inc/header');
$CI->load->view($site);
$CI->load->view('inc/footer');
}
修改强>
您还应该将数组传递给此函数,这样您就可以将数据加载到视图中。像这样;
function view($site, $data = array())
{
$CI =& get_instance();
$CI->load->view('inc/header', $data);
$CI->load->view($site, $data);
$CI->load->view('inc/footer', $data);
}