致命错误::在codeigniter中调用未定义的方法

时间:2013-11-20 10:24:01

标签: php codeigniter

我已经放置了codeigniter代码控制器并且它抛出了一个错误调用未定义的方法CI_Controller :: CI_Controller()。请帮助我纠正这个问题。  控制器:

<?php

class Site1 extends CI_Controller 
{
    function __construct()
    {
    parent::CI_Controller ();
    $this->is_logged_in();
    }

    function members_area()
    {
        $this->load->view('index');


    }

    function another_page() // just for sample
    {
        echo 'good. you\'re logged in.';
    }

    function is_logged_in()
    {
        $is_logged_in = $this->session->userdata('is_logged_in');
        if(!isset($is_logged_in) || $is_logged_in != true)
        {
            echo 'You don\'t have permission to access this page. <a href="../login">Login</a>';    
            die();      
            //$this->load->view('login_form');
        }       
    }   

}

4 个答案:

答案 0 :(得分:1)

这不是你如何调用父构造函数。见this

parent::__construct();

答案 1 :(得分:0)

如果您使用的是最新版本的CodeIgniter,请将此代码替换为:

parent::CI_Controller ();parent::__construct();

答案 2 :(得分:0)

为了运行父构造函数,必须显式调用parent::__construct()

function __construct()
{
   parent::__construct();
   $this->is_logged_in();
}

例如:参考:http://php.net/manual/en/language.oop5.decon.php

 class SubClass extends BaseClass {
   function __construct() {
   parent::__construct();
   print "In SubClass constructor\n";
  }
 }

答案 3 :(得分:0)

如果您使用的是CI 2.x,那么您的类构造函数应如下所示:

   public function __construct()
   {
        parent::__construct();
        // Your own constructor code
   }

user guide

中阅读更多内容