У меня есть две установки модулей в CodeIgniter HMVC. Один из них - это шаблоны, а другой - тест.Загрузка контроллера из другого модуля в CodeIgniter HMVC
здесь структура папок ..
- шаблоны
- контроллеры
- home.php
- -----
- ----. php
- просмотров
- расположение
- admin.php
- main.php
- User.php
- расположение
- home.php
- контроллеры
- тест
- контроллеры
- test.php
- контроллеры
Я добавил переменный маршрут в routes.php который направляет home.php как контроллер по умолчанию для шаблонов. и автоматически загружаемую библиотеку шаблонов.
Теперь, когда я обращаюсь к http://mysite.com/templates/home/index или http://mysite.com/templates/ .. он работает нормально, но когда я запускаю другой модуль (тест), он показывает ошибку. Я также пробовал echo Modules::run('templates/home/index');
, но та же проблема. У меня есть текущие коды в тесте.PHP
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Test extends MX_Controller {
public function index()
{
$this->load->module('templates');
$this->templates->index();
}
}
это говорит Unable to load the requested file: home.php
вот моя библиотека шаблонов
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Template {
private $template_data = array();
private $headers = array();
private $CI;
public function __construct() {
$this->CI =& get_instance();
$this->CI->config->load('template');
}
function set($name, $value) {
$this->template_data[$name] = $value;
}
function add_header($header) {
array_push($this->headers, $header);
}
function load($template = '', $view = '', $view_data = array(), $return = FALSE) {
$this->CI = & get_instance();
$this->set('contents', $this->CI->load->view($view, $view_data, TRUE));
$this->set('headers', implode('', $this->headers));
return $this->CI->load->view($template, $this->template_data, $return);
}
}
/* End of file Template.php */
/* Location: ./system/application/libraries/Template.php */