私はcodeIgniterとModular Extensionを試しています。これまでのところ、私はwiredesignz on bitbucketからインストールの指示に従った。今、NetTutsのチュートリアルHMVC: an Introduction and Applicationを試しています。モジュールロードブレイクビューロード(旧コード)
私は実際のバージョンのCodeIgniter 2.1と実際のバージョンのModular Extension(bitbucketから.zipバージョンをダウンロード)でこれを行います。
他のモジュールのコントローラからメソッドを実行しようとするまで、すべて正常に動作します。
簡単な設定は、2つのモジュール(サイト&ログイン)です。サイトのコントローラ内には、ユーザがログインしているかどうかをチェックするメソッドを持つsite.php(/modules/site/controllers/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();
}
私はエラーを取得しています::チュートリアルから少し調整コード
Unable to load the requested file: logged_in_area.php
の問題の方法は、同様に、サイトのモジュール内にある:
// modules/site/controllers/site.php
function members_area()
{
$this->load->view('logged_in_area');
}
スクリプトはload->view
行まで実行され、エラーが発生します。
$this->is_logged_in();
任意のアイデア:ラインでサイトコントローラ内からis_logged_in
方法を実行しているとlogged_in_area.php
にアクセスしても問題はありませんか?
編集:
アプリケーションツリー:
/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では、ドキュメントhereで述べたように、別のモジュール内からビューをロードするために
index.phpには、あなたの環境を定義する行があります。 'define( 'ENVIRONMENT'、 'development');という行が表示されていることを確認してください。この方法では、すべてのエラーを取得します。 – Zombaya
これは '開発'に設定されています。エラー報告は 'E_ALL'です。そこに何も変えなかった。 – fourreux
しかし、他のモジュールからのビューを読み込んではいけないと思います。モジュラーエクステンションのコンセプトは、ほかのコントローラではなく他のコントローラを呼び出すことができると思っていました。私は私のloginstateとすべてを扱うライブラリを作った。この方法でどこでも使用できます。それでは、ログインフォームとすべてを表示するモジュールを作ることができます。 – Zombaya