codeigniter模型没有加载到控制器中,但没有错误

时间:2011-02-01 15:26:37

标签: php codeigniter model

我在使用Codeigniter中的模型时遇到问题。我在/models/usermodel.php中设置了一个名为 Usermodel 的模型。当我尝试加载它时会停止脚本及其后的任何内容。

当我故意在 - > load->模型区域输入错误的名称时,CI会抛出一个错误,说它无法找到(如预期的那样)当一切正常时,没有任何内容被加载。

我为我的生活看不出有什么问题。任何的想法?谢谢,蒂姆

用户模型

class Usermodel {

    function __construct()
    {
        parent::__construct();
    }

    function displayUser()
    {
        echo "test";
    }
}

课程

class Page extends Controller {

    function __construct()
    {
        parent::__construct();                  
    }

    function index()
    {

        echo "<h1>Test</h1>";
        $this->load->model('usermodel');
        $this->usermodel->displayUser();
    echo "<p>Model loaded</p>";

    }

}

4 个答案:

答案 0 :(得分:8)

根据您的CI版本,您需要扩展基本模型,现在您只需要创建一个名为Usermodel的新空白类

例如

class Usermodel extends CI_Model {   //<-- Note "extends CI_model"

    function __construct()
    {
        parent::__construct();
    }
}

注意

此语法适用于Codeigniter 2.0

Documentation

答案 1 :(得分:3)

您错过了将课程扩展为“模型”CI课程:

class Usermodel extends Model {

    function __construct()
    {
        parent::Model();
    }

    function displayUser()
    {
        echo "test";
    }
}

答案 2 :(得分:0)

您需要先加载__construct。

注意:路径不是网址,而是目录路径。

public function __construct()
{
    parent::__construct();
    $this->load->model('path/to/your/usermodel');
}

然后你的索引功能与你的相同。

function index()
{
    echo "<h1>Test</h1>";
    $this->load->model('usermodel');
    $this->usermodel->displayUser();
    echo "<p>Model loaded</p>";
}

答案 3 :(得分:0)

我认为这是模型的命名约定问题。如果您使用的是codeigniter 3.x,请参阅文档。

  • class Model_student extends CI_Model
  • 将模型保存为Model_student,然后将其加载为
  • $this->load->model(Model_student);

http://www.codeigniter.com/user_guide/general/models.html

我希望这会对你有所帮助。