ctmaster 发表于 2010-5-21 16:19:39

继承自己的controller的问题

本帖最后由 ctmaster 于 2010-5-24 14:30 编辑

我这么做的.

/libraries/MY_Controller.php :

<?php
class MY_Controller extends Controller
{
   function __construct()
   {
      parent::__construct();
   }
}

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

/app/autoload.php :

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

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

OK 我有看了一遍手册,把文件名改成MY_Controller.php了,还是不行。

ctmaster 发表于 2010-5-21 16:24:57

没人回答么?

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

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

难道只能用钩子?

Hex 发表于 2010-5-21 18:48:44

很明显你没有严格按照 http://codeigniter.org.cn/user_guide/general/core_classes.html 这个来做,请仔细看一下手册,每个字节都不要丢掉。

ctmaster 发表于 2010-5-23 15:47:44

回复 3# Hex


    OK 我有看了一遍手册,把文件名改成MY_Controller.php了,还是不行。

visvoy 发表于 2010-5-23 16:11:21

$autoload['libraries'] = array('database', 'session', 'my_controller');
这个也要大小写敏感

ctmaster 发表于 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');

visvoy 发表于 2010-5-23 19:19:26

/libraries/MY_Controller.php :
这个是app/lib还是system/lib?

ctmaster 发表于 2010-5-23 22:21:56

回复 7# visvoy


    system

Hex 发表于 2010-5-23 23:05:32

http://codeigniter.org.cn/user_guide/general/core_classes.html 这个楼主还是没看 -_-
MY_Controller 不需要放到 autoload 中,并且,必须放到 application/libraries 目录下。
这些手册都有明确说明,如果你仔细看,几分钟就能解决。

saturn 发表于 2010-5-24 02:45:58

<?php
class MY_Controller extends Controller
{
   function __construct()
   {
      parent::__construct();
   }
}

parent::__construct();

==>

parent::Controller();

CI的默认Controlloer用的是PHP4语法,你继承的是PHP5的写法。
页: [1] 2
查看完整版本: 继承自己的controller的问题