【问题标题】:codeigniter returns "Message: Undefined property: Welcome::$load" trying to load helper libcodeigniter 返回“消息:未定义的属性:Welcome::$load”试图加载帮助程序库
【发布时间】:2014-02-15 20:51:30
【问题描述】:

背景信息

我刚刚安装了 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>

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

到目前为止我做了什么:

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

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

但我仍然收到错误消息。 有什么建议?

谢谢。

截图:

【问题讨论】:

    标签: php codeigniter url


    【解决方案1】:

    你忘记了一件重要的事情;

    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 时,控制器不会继承它的抽象层。

    只要您不覆盖您的 __construct 就可以了。它仅在您覆盖它时发生。您没有 load 功能,因为 Welcome 类是空的(无继承),即使它扩展了 CI_Controller(但具有 __construct 覆盖)。

    【讨论】:

    • 这是有道理的......但不幸的是,这给了我另一个错误。请检查我帖子的编辑 1 部分。
    • 哈哈,你从字面上复制了我的台词。我打错了。它应该是 ; 而不是 : parent::__construct();
    猜你喜欢
    • 2015-04-22
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 2012-01-31
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多