【问题标题】:Can't access public properties from MY_controller when extending from MX_Controller in HMVC从 HMVC 中的 MX_Controller 扩展时无法从 MY_controller 访问公共属性
【发布时间】:2014-01-28 05:04:22
【问题描述】:

我已经实现了 Codeigniter HMVC,效果很好。然后我用MY_Controller 扩展MX_Controller 以在我的所有模块之间共享功能和属性并保持我的代码干燥。

但我注意到,在从 MX_Controller 扩展 MY_Controller 时,我无法再从 MY_Controller 访问任何扩展子类的公共属性。

一些示例代码:

class MY_Controller extends MX_Controller {

    public $variable;

    function __contruct()
    {
        parent::__contruct();
        $this->variable = 'Foo';
    }
}

然后在我从 MY_Controller 扩展的任何控制器上:

class Foo extends MY_Controller {

    function __construct()
    {
        parent::__construct();
    }

    function someFunction()
    {
       var_dump($this->variable);
    }

}

当我尝试访问任何子控制器中的公共属性 $variable 时,我得到 Null 或空字符串。

我为此搜索了高低,但没有运气,我唯一的猜测是 HMVC MX_Controller 的问题。有什么想法吗?

【问题讨论】:

  • 第一个构造函数有拼写错误吗? __contruct()
  • 是的,Yan Berk,就是这样。在收到有关它的 PHP 错误后,我在同一天注意到了这个问题。我修好了它。我从来不明白的是,这怎么能持续几天而不像最后那样拉出一个 php 错误。

标签: codeigniter codeigniter-hmvc


【解决方案1】:

经过数小时的检查,这是我个人的一个简单错误。我在 MY_Controller 上拼错了名称 parent::__construct,它应该是 parent:__construct。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    相关资源
    最近更新 更多