michaelzhouh 发表于 2013-12-13 11:59:55

解决了,我的每一个Controller都必须

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

就OK了,感觉好冗余哦,有啥办法去掉这个不?

Hex 发表于 2013-12-13 13:20:03

michaelzhouh 发表于 2013-12-13 11:11 static/image/common/back.gif
那我hmvc模式,比如有 后台管理系统,前台用户管理系统,供应商管理系统……我需要每一个单独用一个Contr ...

这个跟什么模式没关系。
CI 的规定就是类名和文件名必须相同,并且只能继承一级父控制器类,换句话说,你的需求 CI 不支持。
如果想支持,就要扩展 CI 的相关功能。

Hex 发表于 2013-12-13 13:21:36

michaelzhouh 发表于 2013-12-13 11:59 static/image/common/back.gif
解决了,我的每一个Controller都必须

就OK了,感觉好冗余哦,有啥办法去掉这个不? ...

这是 PHP 的语言特性,不能自动执行父类构造函数。
你可以不写构造函数,就会自动执行父类构造函数了,但如果子类有构造函数就没办法了。

michaelzhouh 发表于 2013-12-13 13:56:10

Hex 发表于 2013-12-6 15:44 static/image/common/back.gif
CI 不支持控制器多级继承,你只能从 MY_Controller 继承。

MY_Controller继承了CI_Contoller,application的controllers里面的php始终要 再继承MY_Controller噻。是不是相当于都继承了2次了。

fengshuang_110 发表于 2013-12-13 14:02:11


CI 不支持控制器多级继承,你只能从 MY_Controller 继承。这个也是规定吗?

Hex 发表于 2013-12-13 14:44:05

michaelzhouh 发表于 2013-12-13 13:56 static/image/common/back.gif
MY_Controller继承了CI_Contoller,application的controllers里面的php始终要 再继承MY_Controller噻。是 ...

你要这么说,那是继承了两级,我的意思也是这样了,CI 默认不能实现无限制的继承。

Hex 发表于 2013-12-13 14:45:07

fengshuang_110 发表于 2013-12-13 14:02 static/image/common/back.gif
CI 不支持控制器多级继承,你只能从 MY_Controller 继承。这个也是规定吗?

这个不能叫做规定,而是 CI 只是设计为支持继承 MY_Controller,换句话说,CI 只有这个能力。
当然,可以通过扩展 CI 来实现多级继承。

页: 1 [2]
查看完整版本: 扩展CI_Controller成功,但是构造函数没执行