2012-03-15 12 views
1

HMVCTemplate library(Phil Sturgeon製)を使用しています。問題私は私のコードでModules::runを使用する場合に発生:CodeigniterのHMVCとテンプレートライブラリ(Phil Sturgeon提供)

$this->template->title("Some title")->set_partial('header', 'showmessage')->build('showanothermessage', $data); 

とshowmessage.php部分図:

echo Modules::run("goodbye"); 

エラーページがで表示されます。

A PHPエラーでした遭遇しました

重大度:通知

メッセージ:未定義のプロパティ:さようなら:: $エージェント

ファイル名:ライブラリ/ template.php

行番号:122

致命的なエラー:(メンバ関数IS_MOBILEに呼び出し) にDにおける非対象: ラインの\ビン\ WAMP \ WWW \ CodeIgniterのアプリケーション\ライブラリ\ \ template.php 122

この問題を解決する方法。前もって感謝します。

更新 マイgoodbyeコントローラ:

class GoodBye extends MY_Controller{ 
     function __construct(){ 
      parent::__construct(); 
     } 
     function Index(){ echo "Goodbye"; } 
} 

マイMY_Controller

class MY_Controller extends CI_Controller{ 
    function __construct(){ 
     parent::__construct(); 
     // default layout 
     $this->template->set_layout("home_layout"); 
    } 
} 

マイautoloadファイル:私は持っている

$autoload['packages'] = array(); 
$autoload['libraries'] = array('database','session','template'); 
$autoload['helper'] = array(); 
$autoload['config'] = array(); 
$autoload['language'] = array(); 
$autoload['model'] = array(); 
+0

'goodbye'コントローラと、それを拡張しているベースコントローラと、' autoload.php'を参照できますか?これは 'modules :: run()'は現在のコントローラとは独立して動作するので、ユーザエージェントライブラリが 'goodbye'コントローラにロードされていないことを示しています。 –

+0

'GoodBye'コントローラから' parent :: __ construct(); 'を削除しました。なぜ説明できますか? – hanuman0503

+0

正直なところ、私は手がかりを得ていません。 'application \ libraries \ template.php line 122 'とは何ですか? –

答えて

0

MY_Controllerを次のように変更しました:

class MY_Controller extends MX_Controller{ 
    function __construct(){ 
     parent::__construct(); 
     // default layout 
     $this->template->set_layout("home_layout"); 
    } 
} 

+0

http://codeigniter.com/forums/viewthread/192433/P15/#908313詳細については)) – hanuman0503

+0

ああ、私はそれを完全に逃した!うん、 'MX_Controller'をwiredesignzのHMVCを使って拡張し、拡張されたLoaderクラス、Langなどを利用する必要があります。これは実際には[documentation](https://bitbucket.org/wiredesignz/codeigniter-modular-extensions -hmvc/wiki/Home):* "Modules :: run()のようなHMVC機能を使用するには、コントローラはMX_Controllerクラスを拡張する必要があります。" * –

関連する問題