2

CodeIgniter HMVC に 2 つのモジュールをセットアップしました。1 つはテンプレートで、もう 1 つは test です。

ここにフォルダ構造があります..

  1. テンプレート
    • コントローラー
      • home.php
    • -----
      • ----.php
    • ビュー
      • レイアウト
        • admin.php
        • main.php
        • user.php
    • home.php
  2. テスト
    • コントローラー
      • test.php

テンプレートのデフォルト コントローラとして home.php をルーティングする route.php にルート変数を追加しました。および自動ロードされたテンプレート ライブラリ .

http://mysite.com/templates/home/indexまたはhttp://mysite.com/templates/にアクセスすると正常に動作しますが、別のモジュール (テスト) を実行するとエラーが表示されます。私も試しecho Modules::run('templates/home/index');ましたが、同じ問題です。私はtest.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 */
4

1 に答える 1

4

コントローラー名がモジュール名と一致する場合にのみ、コントローラー名を指定せずにモジュールをロードできるようです:

$this->load->module('module/controller'); を使用して、コントローラーを他のコントローラーのクラス変数としてロードできます。または単に $this->load->module('module'); コントローラ名がモジュール名と一致する場合

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/overview

そのようにモジュールをロードしてみてください:

$this->load->module('templates/home');
于 2013-07-04T12:45:13.080 に答える