1

私のアプリケーション.ini

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
test.bootstrap.path = APPLICATION_PATH "/modules/test/Bootstrap.php"
test.bootstrap.class = "Test_Bootstrap"

appnamespace = "Application"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

resources.view.basePath = APPLICATION_PATH "/views/"

resources.view[] =
test.resources.view[] = 

db.adapter = "PDO_MYSQL"
db.params.dbname = "money"
db.params.username = "root"
db.params.password = "**************"

resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

アプリケーション/モジュール/テスト/bootstrap.php

class Test_Bootstrap extends Zend_Application_Module_Bootstrap
{
    protected function _initLeftMenu()
    {
        $this->bootstrap('View');
        $view = $this->getResource('View');
        $view->render('index/_left_menu.phtml'); // <-- here error
    }
}

問題がある$view->render

致命的なエラー: キャッチされない例外 'Zend_View_Exception' とメッセージ 'ビュー スクリプト ディレクトリが設定されていません。C:\ZendFramework\library\Zend\View\Abstract.php:973 スタック トレース: #0 C:\ZendFramework\library\Zend\View\Abstract.php(884): Zend_View_Abstract- >_script('_left_menu.phtm...') #1 E:\www\money2\application\modules\test\Bootstrap.php(19): Zend_View_Abstract->render('_left_menu.phtm...') #2 C:\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(667): Test_Bootstrap->_initLeftMenu() #3 C:\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(620): Zend_Application_Bootstrap_BootstrapAbstract- >_executeResource('leftmenu') #4 C:\ZendFramework\library\Zend\Application\Bootstrap\BootstrapAbstract.php(584):

何か案が?

4

2 に答える 2

0

削除するtest.resources.view[] =

モジュール内のビュー リソースは、メイン ブートストラップからのビューを置き換えます。

ヒント:
$this->getApplication();モジュールでは、bootstrap は main ブートストラップを返し
ます。これを使用して、ビューをブートストラップして取得します。

class Test_Bootstrap extends Zend_Application_Module_Bootstrap
{
    protected function _initLeftMenu()
    {
        //main bootstrap, injected by modules resource
        $bootstrap = $this->getApplication();
        $bootstrap->bootstrap('View');
        $view = $bootstrap->getResource('View');
        $view->render('index/_left_menu.phtml'); // <-- here error
    }
}

ところで、ブートストラップは何かをレンダリングするのに適した場所ではありません。より適切な場所に移動することを検討してください。たとえば、アクションヘルパー。こちらのブログ記事
もチェック

于 2011-07-24T18:11:42.927 に答える
0

自分の救いを見つける:application.ini

test.resources.view.basePath = APPLICATION_PATH "/modules/test/views/"
于 2011-07-25T18:19:32.993 に答える