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

[版本 2.x] 关于数据库的autoload

[复制链接]
发表于 2011-9-24 10:08:38 | 显示全部楼层 |阅读模式
1.database.php 中的参数已经设置好。
2.在application\config\autoload.php 55行设置了: $autoload['libraries'] = array('database');
3.创建testController.php
PHP复制代码
<?php
class TestController extends CI_Controller{
    function __construct(){
        parent::__construct();
    }
    function index(){
        echo 'ok';
    }
    function callModel(){
        $this->load->model('Testmode');
         $this->Testmode->result();
    }
   
}
复制代码

4.创建testmode.php
PHP复制代码
<?php
class Testmode extends CI_Model{
    function __construct(){
        parent::__construct();
    }
    function result(){
        print_r($this->db);
    }
   
}
复制代码

5.浏览器打开http://localhost/web/goda/index.php/testController/callModel


错误提示:
A PHP Error was encounteredSeverity: Notice
Message:  Undefined property: TestController:db
Filename: core/Model.php
Line Number: 50


解决方法:
修改以上第4步:
PHP复制代码
<?php
class Testmode extends CI_Model{
    function __construct(){
        parent::__construct();
    }
    function result(){
      [color=Red]  $this->load->database();//手动加载数据库
        print_r($this->db);
    }
   
}
复制代码


只有有这一句手动加载:$this->load->database();程序就正常了,不管 $autoload['libraries'] = array('database');或 $autoload['libraries'] = array();
CI版本:2.0.3
问题:
1.看其他许多帖子关于这个问题都是关于有没有开启自动加载,为什么这里这个自动加载没有用?
2.$autoload['libraries'] = array();不是加载libraries文件夹下面的类吗?这里面并没有Database.php啊?


 楼主| 发表于 2011-9-24 10:10:19 | 显示全部楼层
期待各位的回答,本人刚刚学习CodeIgniter框架。
发表于 2011-9-24 18:00:07 | 显示全部楼层
~夜行侠~ 发表于 2011-9-24 10:10
期待各位的回答,本人刚刚学习CodeIgniter框架。

按照以上的代码设置不会出现问题,
我在本地做了测试,没有你出现的问题。重新复制你的代码新建一个项目试试;

database的类库不在libraries下面,在database下

本版积分规则