在控制器Codigniter 2.2.6中加载模型时出现问题

时间:2019-03-23 07:15:47

标签: codeigniter model codeigniter-2

我已经在我的实时网站的子文件夹中设置了Codeigniter。 www.example.com/project/ci。当我尝试在控制器中加载模型时,出现Unable to locate the model you have specified错误。我已将$config['base_url']内的/project/ci更改为application > config > config.php

我们放置在应用程序文件夹的views文件夹中的模板文件运行正常,但未加载模型。我在Login内部有一个application > models > admin > Login.php的模型。

这是我调用模型的控制器代码。

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

class Home extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->library('session');
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->helper('html');
        $this->load->database();
    }
    public function admin_login()
    {
            $this->load->model('admin/Login');
            $result = $this->Login->get_user_details();
            print_r($result);
    }
}

这是我模型的代码:

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

class Login extends CI_Model
{
    function __construct()
    {
        // Call the Model constructor
        parent::__construct();

    }
    //get the username & password
    function get_user_details()
    {
        echo "coming";
    }
}
?>

我正在从视图中使用ajax调用函数admin_login。这是我的脚本代码调用函数admin_login

 var ajaxURL = "<?php echo base_url();?>admin/Home/admin_login/"; //url of controller
 jQuery.post(ajaxURL, function(data)
 {
     alert(data);
 });

此代码在xamp上正常工作。谁能帮助我我做错了。

2 个答案:

答案 0 :(得分:0)

我找到了解决方法。问题是文件名。由于文件名为Login.php,因此未加载模型。因此,我将文件名从Login.php更改为login.php,它开始起作用。

答案 1 :(得分:0)

Codeigniter始终关注文件名及其用法。在创建任何控制器和模型的文件名的过程中,应使用大写形式。有时它不会在本地服务器上产生问题。但是,这会在Linux服务器联机中产生问题。

另一个重要的信息,您将始终匹配文件名类名

您可以看到以下代码作为示例

模型
Studentmodel.php
Clientmodel.php


控制器
Studentcontroller.php
ClientController.php