Codeigniter问题与辅助模块中的类有关

时间:2014-11-19 08:49:37

标签: php codeigniter class

我的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');

此代码有什么问题?

1 个答案:

答案 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);
}