【问题标题】:CodeIgniter: Can't load database from within a modelCodeIgniter:无法从模型中加载数据库
【发布时间】:2010-04-21 21:48:45
【问题描述】:

我为我的 CodeIgniter 框架编写了一个新模型。 我正在尝试从构造函数中加载数据库,但出现以下错误:

Severity: Notice
Message:  Undefined property: userdb::$load
Filename: models/userdb.php
Line Number: 7

Fatal error:  Call to a member function database() on a non-object in 
/var/www/abc/system/application/models/userdb.php on line 7

这是我的模型:

<?php

class userdb extends Model {

    function __construct() {

        $this->load->database();

    }
?>

我在这里做错了什么?

【问题讨论】:

    标签: database codeigniter model


    【解决方案1】:

    您忘记先调用父构造函数。比如:

    <?php
    
    class userdb extends Model {
    
    function __construct() {
    
        parent::Model();
    
        $this->load->database();
    
    }
    ?>
    

    【讨论】:

    • 在 abc 行的 application/models/Xyz_manager.php 中调用未定义的方法 CI_Model::Model()
    【解决方案2】:

    我不确定这是否会导致问题,但模型名称的第一个字母应该大写。 http://ellislab.com/codeigniter/user-guide/general/models.html Jens 也是正确的,您也需要调用父构造函数。

    【讨论】:

    • 这也是我的第一个想法——CodeIgniter 命名约定需要大写的类名。在我注意到缺少的构造函数调用之前,我打算这样写;)
    • parent::Model(); 成功了。至于类/模型名称中的大写字母,我真的很讨厌它,但我更改了它以避免可能的错误。感谢您的帮助。
    • 当它甚至没有指定正确答案时,这怎么是最佳答案?下面的 Jens 回答正确。
    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多