继承构造函数PHP5.2.6
我有一个相对简单的问题。我试图从php超类继承一个构造函数,以便在此控制器上进行身份验证 这是我的超级课堂:继承构造函数PHP5.2.6,php,codeigniter,Php,Codeigniter,我有一个相对简单的问题。我试图从php超类继承一个构造函数,以便在此控制器上进行身份验证 这是我的超级课堂: class Auth_Controller extends CI_Controller { function __construct() { parent::__construct(); if(!session_id()){ session_start(); } $this-&g
class Auth_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
if(!session_id()){
session_start();
}
$this->load->view('login_v/logincheck');
}
}
下面是我的子类:
class Event_Controller extends Auth_Controller {
function __construct()
{
parent::__construct();
}
public function get_events_by_owner() {
$this->load->model('Event_model');
$data['events'] = $this->Event_model->select_by_owner($_SESSION['SignedIn']);
$this->load->view('event_view', $data);
}
}
这是行不通的。仅呈现白色页面。我不知道为什么它不起作用。如果我将构造函数从Auth\u Controller
移动到Event\u Model
中,这会起作用
谢谢
编辑:
Fatal error: Class 'Auth_Controller' not found in
../controllers/event_controller.php on line 12
您的解决方案行不通,您应该尝试以下任一方法: 移动此代码:
if(!session_id()){
session_start();
}
$this->load->view('login_v/logincheck');
到cutom库,然后在控制器的构造函数中运行此库。详情请阅读
或:
创建MY_Controller类并将auth代码(上面引用)放入其构造函数中。这样您就可以像这样扩展:
class Event_Controller extends MY_Controller {
(...)
有关详细信息,请阅读。您需要确保已打开错误报告。这就是为什么你会得到一张“白纸”。检查你的日志。编辑
index.php
并设置define('ENVIRONMENT','development')代码>。我几乎可以肯定您的问题与会话\u start()
调用有关。您能否通过调用错误报告(-1)
和ini\u集('display\u errors',1)
来启用错误?请看一看:问题是CodeIgniter没有自动加载您的验证控制器
文件。CodeIgniter只允许您(本机)通过命名类来扩展类My\u Controller
。这个页面有一个解决方案:@RocketHazmat发现了,我的文件名实际上是auth_controller.php
而不是auth_controller.php
doh@Lilluda5:你成功了吗?凉的很高兴我能帮忙:-)