2016-03-28 1 views
0

複数のモジュールで作業したいです。したがって私はphalconコマンドfrontendbackendモジュールを使って作成しました。 (私はこの中に入れた:私はこのコードを追加することによって、新しいモジュールを登録する必要がありました。このドキュメントによると - このコマンドphalcon module frontendを使用するには、私はphalconのドキュメントに従って始めた使用後config.phpカルコン複数モジュールが動作しません

'modulesDir'  => APP_PATH . '/app/modules/', 

にラインを書くためには、このコマンドを持っていましたfrontend - 私は、モジュールをデフォルトにroutesを更新して行わこのacctions後index.php

$application->registerModules(
     array(
     'frontend' => function ($di) use ($view) { 
      $di->setShared('view', function() use ($view) { 
      $view->setViewsDir('../apps/frontend/views/'); 
      return $view; 
      }); 
     }, 
     'backend' => function ($di) use ($view) { 
      $di->setShared('view', function() use ($view) { 
      $view->setViewsDir('../apps/backend/views/'); 
      return $view; 
      }); 
     } 
    ) 
); 

最後に、その後私は、この通知を受け取る:

インデックスコントローラで
IndexController handler class cannot be loaded 

私はそれが正しく動作し、私は何を修正するか、改善すべきnamespace Application\Frontend\Controllers;

を置きますか? ありがとうございます。

+0

IndexControllerのファイル名は何ですか?私はindexController.phpまたはIndexController.phpを意味するIndexController.php ここでは、マルチモジュールmvc用のphalconコマンドツールグラブです。すべてのモジュールでregisterModules関数とModules.phpを見てください https://github.com/phalcon/mvc/tree/master/multiple –

+0

gitのソースを提供して問題の可能性がある箇所を確認できますか? –

+0

そうでなければ、私は準備ができた複数のモジュールを使うことができますが、私はphalconコマンドを使います。私はなぜそれがエラーを返すか知りたいと思っています。 – betty39johnson

答えて

0

デフォルトルートを更新する必要があります。 このコードを見てみましょう:

$di->set('router', function() { 

    $router = new Router(false); 
    $router->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI); 
    $router->removeExtraSlashes(true); 

    $router->setDefaultModule('frontend'); 

    /** 
    * Default routes 
    */ 
    $router->add('/:module/:controller/:action/:params', [ 
     'module' => 1, 
     'controller' => 2, 
     'action' => 3, 
     'params' => 4 
    ]); 
    $router->add('/:module/:controller', [ 
     'module' => 1, 
     'controller' => 2, 
     'action' => 'index' 
    ]); 
    $router->add('/:module', [ 
     'module' => 1, 
     'controller' => 'index', 
     'action' => 'index' 
    ]); 
    $router->add('/', [ 
     'action' => 'index', 
     'controller' => 'index' 
    ]); 
}); 

はまた、あなたのローダーをチェック

$loader->registerNamespaces(array(
    'Application\Modules' => $config->app->modulesDir, 
)); 

そして、私が思うに、あなたのコントローラーの名前空間は、次のようになります。

namespace Application\Modules\Frontend\Controllers; 
関連する問題