michaelzhouh 发表于 2013-12-5 14:39:24

扩展CI_Controller成功,但是构造函数没执行

1. application/core/MY_Controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Admin_Controller extends CI_Controller {
public function __construct() {
echo 111;exit; //调试看这一句执行情况
parent::__construct();
}
}


2.
为什么application/contollers/index.php这里面
class Index extends Admin_Controller {   正确执行了构造函数的

而application/contollers/admin/index.php这里面
class Index extends Admin_Controller {   就没执行构造函数了???

michaelzhouh 发表于 2013-12-5 14:41:43

区别就是controller多了一个目录

葃夜のoοゞ雪ゞ 发表于 2013-12-6 10:38:45

你确定你这个问题出现了 ,我尝试了下两个全能运行

Hex 发表于 2013-12-6 15:44:24

CI 不支持控制器多级继承,你只能从 MY_Controller 继承。

♂chen 发表于 2013-12-8 12:52:35

楼上正解,在core文件夹里MY_Controller里写需要配置的东西,在各个controller里继承

michaelzhouh 发表于 2013-12-12 10:02:34

♂chen 发表于 2013-12-8 12:52 static/image/common/back.gif
楼上正解,在core文件夹里MY_Controller里写需要配置的东西,在各个controller里继承 ...

帅哥能再具体一点么?
class Admin_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
...
这个继承没生效。
是不是说我不用继承CI_Controller了,直接把CI_Controller的东西拷贝到这里,再扩展我自己要的东西?

michaelzhouh 发表于 2013-12-12 16:29:16

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

我的Admin_Controller就是MY_Controller啊,文件名叫做MY_Controller,类名叫Admin_Controller

Hex 发表于 2013-12-12 16:31:30

michaelzhouh 发表于 2013-12-12 16:29 static/image/common/back.gif
我的Admin_Controller就是MY_Controller啊,文件名叫做MY_Controller,类名叫Admin_Controller ...

文件名和类名必须相同,这是规定。

michaelzhouh 发表于 2013-12-13 11:11:15

Hex 发表于 2013-12-12 16:31 static/image/common/back.gif
文件名和类名必须相同,这是规定。

那我hmvc模式,比如有 后台管理系统,前台用户管理系统,供应商管理系统……我需要每一个单独用一个Controller,怎么办呢?

michaelzhouh 发表于 2013-12-13 11:15:46

Hex 发表于 2013-12-12 16:31 static/image/common/back.gif
文件名和类名必须相同,这是规定。

我已经改的完全对应了 都用的MY_Controller,但还是和帖子主题一样,带目录的admin/controller构造函数都不执行构造函数(都没继承)
页: [1] 2
查看完整版本: 扩展CI_Controller成功,但是构造函数没执行