CodeIgniter PHP 模型访问“无法找到您指定的模型”

2022-08-30 11:43:58

我一直在尝试为我正在构建的网站加载一些模型。但是,由于未知原因,它将带来以下错误:

An Error Was Encountered

Unable to locate the model you have specified: logon_model

现在,我已经完成了我的研究。问题在于IC处理小写的文件名。但是,我的文件和文件调用都是小写的,如下所示:

echo "VALIDATING";
            // Validation passed. Off we go to account info verification from AA's database. God help us all.
            $this->load->model('logon_model');
            echo "FOUND MODEL";
            $res = $this->logon_model->verify_user($this->input->post('username'),$this->input->post('password'));
            echo $this->input->post('username');
            echo $this->input->post('password');

执行达到“FOUND MODEL”,因此在模型加载时停止。我尝试使用:

 $this->load->model(site_url('logon_model'));

没有结果。需要提到模型文件是否正确放置在正确的模型文件夹中?

我该如何解决这个问题?

编辑 :模型文件的标题:

class Logon_model extends CI_Model {

....

答案 1

创建模型时,您需要将文件放入并以小写形式命名文件 - 例如application/models/logon_model.php

应包含以下内容:logon_model.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Logon_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
    }
    ...

现在,为了测试您的应用程序模型是否可访问,您可以做的是尝试在浏览器中打开它 - 就像这样:
http://example.org/application/models/logon_model.php

如果您看到文本“不允许直接脚本访问”,则表示您点击了正确的文件(如果您有任何疑问,请尝试在第一行的 exit() 中写入其他内容)。

其次,要在控制器中加载模型,您应该能够执行以下操作:

public function index()
{

    $this->load->model('logon_model');
    ...

}

如果上述所有内容都按预期签出,我将开始查看文件权限和/或可能的符号链接(如果您使用的是任何符号链接)。


答案 2

我使用代码 3+。我遇到了同样的问题,在我的情况下,我从uppser案例开始更改了模型文件名。

Logon_model.php


推荐