创建Codeigniter助手 - >未定义的方法

时间:2012-01-19 19:59:59

标签: codeigniter methods undefined helper

我在application / helpers / folder

中创建了一个帮助器“session_helper.php”
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('is_login'))
{
    function is_login()
    {
        $CI =& get_instance();

        $is_logged_in = $CI->session->userdata('is_logged_in');

        if (!isset($is_logged_in) || $is_logged_in != TRUE) { 

            redirect('login');

        }               

    }   
}

和“Configuracion”控制器:

class Configuracion extends CI_Controller {

    function __construct()
    {
            parent::__construct();

            $this->is_logged_in();  
    }

    function is_logged_in()
    {
        $this->load->helper('session');

        $this->is_login();

    }       

} 

问题是当我调用控制器“http:// localhost / proyect / configuracion”时出现以下错误:

致命错误:在第15行调用C:... \ application \ controllers \ configuracion.php中的未定义方法Configuracion :: is_login()

我阅读了手册,显然一切都正确......出了什么问题?

2 个答案:

答案 0 :(得分:4)

&#34; is_login&#34;是一种功能,而不是一种方法。只需将$this->is_login();替换为is_login();

答案 1 :(得分:1)

助手不是方法,只是简单的函数调用。

在“用户指南”中查看帮助者:http://codeigniter.com/user_guide/general/helpers.html

加载助手:

$this->load->helper('url');

使用其辅助函数:

<?php echo anchor('blog/comments', 'Click Here');?>

其中anchor()是加载的帮助程序的一部分。

此外,我会敦促你不要再打电话给帮助者'会话',使其更具描述性,因为它可能会在以后变得混乱。只是一个建议,完全取决于你。