背景资料
我刚刚安装了CI的新副本并修改了欢迎控制器以包含url Helper,因此我可以调用方法base_url
。然后我尝试从home.php
问题: 我收到以下错误消息:
Message: Undefined property: Welcome::$load
Filename: controllers/welcome.php
代码:
这就是我的欢迎控制器现在的样子:
class Welcome extends CI_Controller {
public function __construct()
{
$this->load->helper('url');
}
public function index()
{
$this->load->view('home');
}
}
视图如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<meta charset="utf-8">
<meta name="viewport" content="width = device-width">
<meta name="description" content="">
<!-- Le styles -->
<title>test site</title>
<script>
var BASEPATH = "<?php echo base_url(); ?>";
</script>
<link href="<?php echo base_url('assets/css/bootstrap.min.css')?>" rel="stylesheet">
<link href="<?php echo base_url('assets/css/navbar.css')?>" rel="stylesheet">
</head>
系统在控制器构造函数中的行上死亡,我尝试加载库...
到目前为止我做了什么:
试图在config / autoload.php中包含url库,如下所示:
$autoload['helper'] = array('url');
但我仍然得到错误。 有什么建议?
感谢。
截图:
答案 0 :(得分:40)
你忘记了一件至关重要的事情;
class Welcome extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url'); //Loading url helper
}
public function index()
{
$this->load->view('home'); //Loading home view
}
}
parent::__construct
。如果你不这样做;当你覆盖自己控制器中的__construct时,Controller不会继承它的抽象层。
只要您不覆盖__construct
,就可以了。它只会在您覆盖它时发生。您没有load
功能,因为Welcome类为空(无继承),即使它扩展了CI_Controller
(但使用__construct
覆盖)。