2017-02-04 3 views
0

У меня возникла одна странная проблема с моим проектом Codeigniter.Модель загрузки Codeigniter из другой подпапки

У меня есть две модели файлов в следующих путях:

models/public/Dish_model.php 
models/admin/Dish_model.php 

Для переднего плана и серверные модели соответственно.

В контроллере, который по следующему пути:

controllers/admin/Dish.php 

Я пытаюсь загрузить файл модели админки с помощью:

$this->load->model('admin/dish_model'); 

Но загружается файл общественной модели.

Даже если я прокомментирую эту строку, файл общедоступной модели по-прежнему загружается.

Все это произошло внезапно, когда он работал нормально, и я не изменил ни одного из упомянутых файлов в последнее время.

Любая помощь?

+1

Как вы знаете, что загружает другой файл модели? используйте альтернативный способ. '$ this-> load-> model ('admin/dish_model', 'amodel');' и использовать как этот' $ this-> amodel-> method(); ' –

+0

Я знаю, потому что я пытался вызвать функцию из каждого один и тот же из другой модели работал! –

+0

Я также попробовал ваше предложение ... нет разницы: \ –

ответ

1

В случае, если кто-либо другой сталкивается с той же проблемой.

В моем случае и после тщательного отслеживания пути выполнения контроллера я обнаружил, что другая модель загружается библиотекой в ​​список автозагрузки.

Удаление этой библиотеки из массива автозагрузки устраняет проблему.

0

для вызова/загрузки модели из ее подкаталога или подпапки.

models/public/Dish_model.php 

скажем в Dish_model

class Dish_model extends CI_Model{ 
    public function __construct(){ 
     parent::__construct(); 
    } 
    public function the_method(){ 
     return 'return value'; 
    } 
} 

models это родной каталог CI модель и public это подкаталог. так, чтобы загрузить Dish_model сделать это на контроллере

$this->load->model('public/Dish_model','DModel'); 

DModel это как псевдоним. так назвать модель от контроллера

echo $this->DModel->the_method(); 

и он вернется return value надеюсь, ее помощь.

Смежные вопросы