2009-06-10 6 views
0

私はZF 1.8プロジェクトでモジュールを使用しようとしていますが、モジュールの動作へのルーティングはできません。ここZendFrameworkでのモジュールの使用1.8.2

は一例であり、I 'はテスト' モジュールを指すルート "/試験"、コントローラ 'TTT' とアクション '指数' を作成する:

$router->addRoute(
    $name, 
    new Zend_Controller_Router_Route('test', 
     array('controller' => 'ttt', 
       'module' => 'test', 
       'action' => 'index')) 
); 

Iは、モジュールディレクトリをinitilaize(diretory「TTTを作成します」、コントローラとビューのクラスが必要)とブートストラップの間にそれを指定します。

$front->addModuleDirectory(dirname(__FILE__) . '/modules'); 

をしかし、私はexample.com/testのようなURLを開いたときに、私は次のようにエラーを取得しています 『のメッセージ:無効なコントローラは、指定された(TTT)』。

私の例で何が問題になっていますか?

固定

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

答えて

3

デフォルトのモジュールにないコントローラの場合は、コントローラ名の前にモジュール名とアンダースコアを付ける必要があります。

すなわち

class Test_TttController extends Zend_Controller_Action 
{ 

} 
+0

あなたは正しいです、クラスにはそのように名前を付け、application.iniにはリソースを設定する必要があります。 frontController.moduleDirectoryパラメータ。何らかの理由でBootstrap.phpからこのパラメータを設定しても機能しません。また、zf.shは、モジュール内のファイルのコードを間違って作成します。 –

+0

ええ、明らかに準備ができていないので、1.8リリースのZend_Toolは含まれていないはずです。しかし、信仰を持って、すぐにソートされます:) –

0

あなたは、別のコントローラクラスファイルをコピーし、それを名前を変更し、ファイル内のTttControllerにクラス宣言を変更するには忘れてしまった: はのapplication.iniに次の行を追加しましたか?コントローラーが実際に存在する場合、そのエラーメッセージが表示されます。

class TttController extends Zend_Controller_Action 
{ 
... 

もちろん、私は邪魔になるかもしれません。

+0

いいえ、私はZFツールを使用してコントローラを作成しました。大丈夫です。 –

+0

Zend_Toolは私が知っている限りかなりバギーですので、正しい名前で正しいファイルが生成されたことを確認してください。 –

+0

ええ、私はすでに2つのバグを報告しており、数分前に別のバグを発見しました。だから私は常に生成されたコードをチェックします。ただ動作しないので、1.8バージョンのバグだと思います。 –

関連する問題