用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3644|回复: 16
收起左侧

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

[复制链接]
发表于 2013-12-5 14:39:24 | 显示全部楼层 |阅读模式
1. application/core/MY_Controller.php
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 {     就没执行构造函数了???

 楼主| 发表于 2013-12-5 14:41:43 | 显示全部楼层
区别就是controller多了一个目录
发表于 2013-12-6 10:38:45 | 显示全部楼层
你确定你这个问题出现了 ,我尝试了下两个全能运行
发表于 2013-12-6 15:44:24 | 显示全部楼层
CI 不支持控制器多级继承,你只能从 MY_Controller 继承。
发表于 2013-12-8 12:52:35 | 显示全部楼层
楼上正解,在core文件夹里MY_Controller里写需要配置的东西,在各个controller里继承
 楼主| 发表于 2013-12-12 10:02:34 | 显示全部楼层
♂chen 发表于 2013-12-8 12:52
楼上正解,在core文件夹里MY_Controller里写需要配置的东西,在各个controller里继承 ...

帅哥能再具体一点么?
class Admin_Controller extends CI_Controller {
public function __construct() {
  parent::__construct();
  ...
这个继承没生效。
是不是说我不用继承CI_Controller了,直接把CI_Controller的东西拷贝到这里,再扩展我自己要的东西?
 楼主| 发表于 2013-12-12 16:29:16 | 显示全部楼层
Hex 发表于 2013-12-6 15:44
CI 不支持控制器多级继承,你只能从 MY_Controller 继承。

我的Admin_Controller就是MY_Controller啊,文件名叫做MY_Controller,类名叫Admin_Controller
发表于 2013-12-12 16:31:30 | 显示全部楼层
michaelzhouh 发表于 2013-12-12 16:29
我的Admin_Controller就是MY_Controller啊,文件名叫做MY_Controller,类名叫Admin_Controller ...

文件名和类名必须相同,这是规定。
 楼主| 发表于 2013-12-13 11:11:15 | 显示全部楼层
Hex 发表于 2013-12-12 16:31
文件名和类名必须相同,这是规定。

那我hmvc模式,比如有 后台管理系统,前台用户管理系统,供应商管理系统……我需要每一个单独用一个Controller,怎么办呢?
 楼主| 发表于 2013-12-13 11:15:46 | 显示全部楼层
Hex 发表于 2013-12-12 16:31
文件名和类名必须相同,这是规定。

我已经改的完全对应了 都用的MY_Controller,但还是和帖子主题一样,带目录的admin/  controller构造函数都不执行构造函数(都没继承)

本版积分规则