0

codeIgniterとModularExtensionを試しています。これまでのところ、bitbucketのwiredesignzからのインストール手順に従いました。今、私はチュートリアルHMVC:NetTutsの紹介とアプリケーションを試しています。

私はこれをCodeIgniter2.1の実際のバージョンとModularExtensionの実際のバージョン(bitbucketから.zipバージョンをダウンロード)で行っています。

別のモジュールのコントローラーからメソッドを実行しようとするまでは、すべて正常に機能します。

簡単に言うと、2つのモジュール(サイトとログイン)があります。サイトのコントローラー内には/modules/site/controllers/site.php、ユーザーがログインしているかどうかを確認するメソッドを持つsite.php()があります。このメソッドは、ログインせずにサイトにアクセスするとスクリプトの実行を終了します。このメソッドは論理的にログインモジュールに属しているため、作成者はそこに移動することをお勧めします。したがって、に移動され/modules/login/controllers/login.phpます。

ここでの問題は、サイトモジュール内からログインモジュールのメソッドにアクセスする方法です。チュートリアルからわずかに調整されたコード:

// modules/site/controllers/site.php

function __construct()  
{  
    // parent::Controller();
    // replaced with:
    parent::__construct();

    // modules::run('login/is_logged_in');
    // replaces with:
    $this->load->module('login')->is_logged_in();
}  

このように私はエラーが発生しています:

要求されたファイルをロードできません:logged_in_area.php

問題のメソッドは、サイトモジュール内にもあります。

// modules/site/controllers/site.php

function members_area()
{
$this->load->view('logged_in_area');
}

スクリプトはそのload->view行まで実行され、エラーが発生します。次の行を使用して、サイトコントローラー内からメソッドlogged_in_area.phpを実行することでにアクセスすることに問題はありません。is_logged_in

$this->is_logged_in();

何か案は?

編集:

アプリケーションツリー:

/application
  /...
  /modules
    /login
      /controllers
        login.php
      /models
      /views
        login_form.php
        signup_form.php
        signup_successful.php
    /site
      /controllers
        site.php
      /models
        membership_model.php
      /views
        logged_in_area.php

PS:どうすればエラーについてより多くの情報を得ることができますか?CodeIgniterはエラー出力に関して非常に予約されているようです...

4

1 に答える 1

0

別のモジュール内からビューをロードするには、ここのドキュメントに記載されているように、拡張MXコントローラーとメソッドを使用する必要があります。

<?php echo Modules::run('module/controller/method', $param, $...); ?>

于 2012-05-06T18:17:46.380 に答える