У меня возникают проблемы с загрузкой модели в контроллер дополнительного модуля из самого модуля.
У меня есть несколько модулей и подмодулей, как показано ниже.
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 имеет собственные файлы.
Теперь я создал модель в модулях / admin / models / plugs / просто для тестирования, что-то вроде ниже
Модель вилок
<?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'; } }
И теперь, пытаясь загрузить в контроллер Plugs, как показано ниже
<?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 } }
Но когда я попытался получить доступ к URL-адресу 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
Так как загрузить модель в контроллер?
Ваш модуль не является 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