3

みなさんこんにちは!

私はzf2を学んでおり、ナビゲーションパネルをセットアップしようとしています(ベース: Zend Framework 2: Zend_Navigation )が、コンピューターからの答えはまだ:

エラーが発生しました実行中にエラーが発生しました。後でもう一度試してください。追加情報: Zend\ServiceManager\Exception\ServiceNotFoundException ファイル: /var/www/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:453 メッセージ: Zend\ServiceManager\ServiceManager::get を実行できませんでしたナビゲーション用のインスタンスを取得または作成する

module.config.php には以下が含まれます。

   'servicemanager' => array(
        'factories' => array(
            'navigation' => function($sm) {
                $config = $sm->get('Config');
                $navigation = new \Zend\Navigation\Navigation($config->get('navigation'));
                return $navigation;
            }
        ),
    ),

次のようなメインの config/autoload フォルダーに application.global.php があります。

<?php

return array(
    // All navigation-related configuration is collected in the 'navigation' key
    'navigation' => array(
        // The DefaultNavigationFactory we configured in (1) uses 'default' as the sitemap key
        'default' => array(
            // And finally, here is where we define our page hierarchy
            'Album' => array(            
                    'label'      => 'Albumlista',
                    'route'      => 'album',
                    'action' => 'index',
                    'pages'      => array(
                        array(
                            'label'      => 'Add',
                            'route'      => 'album',
                            'action'     => 'add'
                            )           
                       )
               ),
            'Application' => array(            
                    'label'      => 'Alap alkalmazás',
                    'route'      => 'application',
                    'action' => 'index',

               )
        ),
    ),

);

そしてコントローラーから私はこのコマンドを与えます:

$config = $this->getServiceLocator()->get('navigation');

誰かがこの問題を解決するのを手伝ってくれませんか? http://adam.lundrigan.ca/2012/07/quick-and-dirty-zf2-zend-navigation/について読んで、試してみましたが、aclと組み合わせて、この質問を書きました。

いつも助けてくれてありがとう!

4

3 に答える 3

3

Naviagtionクラスのコンストラクターを見ると、Pagesの配列またはTraversableオブジェクトのいずれかが必要でした。ページの配列を含む配列を渡しています。これを試してください。

'servicemanager' => array(
    'factories' => array(
        'navigation' => function($sm) {
            $navigation = new \Zend\Navigation\Service\DefaultNavigationFactory;
            $navigation = $navigation->createService($sm);

            return $navigation;
        }
    ),
),

デフォルトのファクトリは、ナビゲーション構成の下でデフォルトノードを探すことにより、構成を自動的に検索します。

または、そのままにしておくこともできますが、これは実際のページ定義であるため、「デフォルト」ノード(構成のナビゲーションノードの下)をナビゲーションコンストラクターに渡します。

于 2013-02-12T09:31:46.397 に答える
0

次の行を変更すると、問題は解決しましたapplication.config.php

'config/autoload/{,*.}{global,local}.php', //[This is default setting]

config_glob_paths' => array( '<PUT_ABSOLUTE_PATH_HERE>{,*.}{global,local}.php', ),

相対パスではなく、'config/autoload'完全パスの代わりに。

于 2014-04-01T08:18:39.870 に答える