我已经在我的实时网站的子文件夹中设置了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上正常工作。谁能帮助我我做错了。
答案 0 :(得分:0)
我找到了解决方法。问题是文件名。由于文件名为Login.php
,因此未加载模型。因此,我将文件名从Login.php
更改为login.php
,它开始起作用。
答案 1 :(得分:0)
Codeigniter始终关注文件名及其用法。在创建任何控制器和模型的文件名的过程中,应使用大写形式。有时它不会在本地服务器上产生问题。但是,这会在Linux服务器联机中产生问题。
另一个重要的信息,您将始终匹配文件名和类名。
您可以看到以下代码作为示例
模型
Studentmodel.php
Clientmodel.php
控制器
Studentcontroller.php
ClientController.php