我无法从子模块本身加载子模块控制器中的模型。
我的模块和子模块很少,如下所示
modules/admin/
modules/admin/models
modules/admin/controllers
modules/admin/views
modules/admin/models/dashboard/
modules/admin/controllers/dashboard/
modules/admin/views/dashboard/
modules/admin/models/plugs/
modules/admin/controllers/plugs/
modules/admin/views/plugs/
每个M / V / C都有自己的文件。
现在我已经在modules / admin / models / pluggs /中创建了模型,仅用于测试目的,如下所示
插件型号
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Plugs extends CI_Model
{
public function __construct()
{
parent::__construct();
}
public function mymeta()
{
return 'plugs model loded';
}
}
现在尝试加载插件控制器,如下所示
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
class Plugs extends MX_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('plugs');
}
public function index()
{
$this->load->view('plugs/index');
}
public function get_plugin_meta()
{
echo $this->plugs->mymeta(); // this is the method from Plugs Models
}
}
但是当我尝试访问网址http://localhost/mysite/admin/plugs/get_plugin_meta
或http://localhost/mysite/admin/plugs
时,它会给我以下错误。
An Error Was Encountered
Unable to locate the model you have specified: plugs
那么如何在控制器中加载模型呢?
答案 0 :(得分:1)
您的模块不是plugs
。由于admin
modules/admin
您应该使用$this->load->model('module/model');
试试这个:
$this->load->model('admin/plugs/plugs'); // module/folder/file
控制器类名称和模型类名称存在冲突。
只需使用以下代码重命名模型文件名:plugs_model.php
并使用以下内容更改班级名称:class Plugs_model extends CI_Model
$this->load->model('admin/plugs/plugs_model');
echo $this->plugs_model->mymeta(); // plugs model loded