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

[已解决] 继承自己的controller的问题

[复制链接]
发表于 2010-5-21 16:19:39 | 显示全部楼层 |阅读模式
本帖最后由 ctmaster 于 2010-5-24 14:30 编辑

我这么做的.

/libraries/MY_Controller.php :

PHP复制代码
<?php
class MY_Controller extends Controller
{
   function __construct()
   {
      parent::__construct();
   }
}
复制代码


/app/controllers/login.php :
PHP复制代码
<?php
class Login extends MY_Controller
{
  function __construct()
  {
    parent::__construct();
  }
}
复制代码


/app/autoload.php :

PHP复制代码
$autoload['libraries'] = array('database', 'session', 'my_controller');
复制代码


可是为什么每次都找不到这个 MY_Controller 类呢?

OK 我有看了一遍手册,把文件名改成MY_Controller.php了,还是不行。
 楼主| 发表于 2010-5-21 16:24:57 | 显示全部楼层
没人回答么?

$autoload['libraries'] = array('database', 'session', 'my_controller');

这里面调用的库类应该是每个controller实例化之后才调用的吧?

难道只能用钩子?
发表于 2010-5-21 18:48:44 | 显示全部楼层
很明显你没有严格按照 http://codeigniter.org.cn/user_guide/general/core_classes.html 这个来做,请仔细看一下手册,每个字节都不要丢掉。
 楼主| 发表于 2010-5-23 15:47:44 | 显示全部楼层
回复 3# Hex


    OK 我有看了一遍手册,把文件名改成MY_Controller.php了,还是不行。
发表于 2010-5-23 16:11:21 | 显示全部楼层
$autoload['libraries'] = array('database', 'session', 'my_controller');
这个也要大小写敏感
 楼主| 发表于 2010-5-23 16:34:53 | 显示全部楼层
$autoload['libraries'] = array('database', 'session', 'my_controller');

我试过 $autoload['libraries'] = array('database', 'session', 'my_controller');
$autoload['libraries'] = array('database', 'session', 'MY_Controller');
$autoload['libraries'] = array('database', 'session', 'My_controller');
$autoload['libraries'] = array('database', 'session', 'MY_controller');
发表于 2010-5-23 19:19:26 | 显示全部楼层
/libraries/MY_Controller.php :
这个是app/lib还是system/lib?
 楼主| 发表于 2010-5-23 22:21:56 | 显示全部楼层
回复 7# visvoy


    system
发表于 2010-5-23 23:05:32 | 显示全部楼层
http://codeigniter.org.cn/user_guide/general/core_classes.html 这个楼主还是没看 -_-
MY_Controller 不需要放到 autoload 中,并且,必须放到 application/libraries 目录下。
这些手册都有明确说明,如果你仔细看,几分钟就能解决。
发表于 2010-5-24 02:45:58 | 显示全部楼层
PHP复制代码
<?php
class MY_Controller extends Controller
{
   function __construct()
   {
      parent::__construct();
   }
}
复制代码


parent::__construct();

==>

parent::Controller();

CI的默认Controlloer用的是PHP4语法,你继承的是PHP5的写法。

本版积分规则