codeigniter返回"Message:Undefined property:Welcome :: $ load",试图加载helper lib

dot*_*dot 11 php url codeigniter

在此输入图像描述

背景资料

我刚刚安装了CI的新副本并修改了欢迎控制器以包含url Helper,因此我可以调用该方法base_url.然后我尝试从这个方法调用home.php

问题: 我收到以下错误消息:

Message: Undefined property: Welcome::$load
Filename: controllers/welcome.php
Run Code Online (Sandbox Code Playgroud)

码:

这就是我的欢迎控制器现在的样子:

class Welcome extends CI_Controller {
    public function __construct()
    {
        $this->load->helper('url');     
    }   

    public function index()
    {
        $this->load->view('home');
    }
}
Run Code Online (Sandbox Code Playgroud)

该视图如下所示:

<!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>
Run Code Online (Sandbox Code Playgroud)

系统在控制器构造函数中的行上死亡,我尝试加载库...

到目前为止我做了什么:

  1. 阅读手册.https://www.codeigniter.com/user_guide/helpers/url_helper.html
  2. 试图在config/autoload.php中包含url库,如下所示:

    $autoload['helper'] = array('url');

但我仍然得到错误.有什么建议?

谢谢.

截图:

小智 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
    }
}
Run Code Online (Sandbox Code Playgroud)

parent::__construct.如果你不这样做; 当您覆盖自己控制器中的__construct时,Controller不会继承它的抽象层.

只要你不覆盖你__construct的一切都好.它只会在您覆盖它时发生.您没有该load功能,因为Welcome类为空(无继承),即使它扩展了CI_Controller(但具有__construct覆盖).