1

ナビゲーションを実行していて、すべてのリンクが正常に機能しています。を使用してナビゲーションをレンダリングする$this->navigation($nav)->menu()と、順序付けされていないリストが表示され、すべてのリンクが機能します。

さらに、そこにあるアクティブなリンクも機能しています。アクティブな要素はclass="active"属性として持っています。

$this->navigation($nav)->breadcrumbs()ブラッドクラムが私に何もレンダリングしないので、同じナビゲーションをレンダリングします。これは、今のところナビゲーションが1レベルしかないことが原因である可能性がありますが、最初のレベルはまだレンダリングされているはずです。

super modern die()-debuggingを使用するfindActive()と、viewHelperのがアクティブな要素を検出せず、したがって空の文字列を返すため、何もレンダリングされないことがわかりました。

私のエラーがどこにあるのかについて何か考えはありますか?どんな洞察も大歓迎です。これまでの私のコードは次のとおりです。

'navigation' => array(
    'default' => array(
        'biete' => array(
            'label' => 'Biete',
            'route' => 'biete',
        ),
        'suche' => array(
            'label' => 'Suche',
            'route' => 'suche',
        ),
        'administration' => array(
            'label' => 'Administration',
            'route' => 'admin'
        ),
        'dashboard' => array(
            'label' => 'Meine Artikel',
            'route' => 'dashboard'
        ),
        'login' => array(
            'label' => 'Anmelden',
            'route' => 'duituser/login'
        ),
        'logout' => array(
            'label' => 'Abmelden',
            'route' => 'duituser/logout'
        )
    ),
),
'service_manager' => array(
    'factories' => array(
        'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
        'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
    ),
),

そして、私の中にあるビューパーツlayout.phtml

<?php echo $this->navigation('navigation')->menu(); ?>
<?php echo $this->navigation('navigation')->breadcrumbs(); ?>

よろしくお願いします。

4

3 に答える 3

2

ナビゲーションクラス/ヘルパーで遊んだ-「遊び場」ルートが一致すると、ブレッドクラムがレンダリングされるようです(以下の例)。ただし、デフォルトルートに追加'active' => trueすると、常にブレッドクラムヘルパーによってレンダリングされます。

'navigation' => array(
     'default' => array(
        'test' => array(
            'label' => 'Home',
            'route' => 'test',
            'active' => true,
            'pages' => array(
                'playground' => array(
                    'label' => 'Playground',
                    'route' => 'playground',
                ),
            ),
        ),
    ),
 ),
于 2012-10-17T11:09:47.320 に答える
1

DrBezaの答えに加えて、ここに私を助けたものがあります。問題は、Breadcrumb-Navigationが2番目のレベルに到達したときにのみレンダリングされることでした。ただし、次のように呼び出すことで、明らかにその設定を変更できます。

$this->navigation('navigation')->breadcrumbs()->setMinDepth(0);

私にとって、これが必要だったすべてです。ただし、DrBezaが指摘したように、これでは不十分な場合もあります。

于 2012-10-17T13:17:02.943 に答える
0

私の場合、これだけを助けます:

$this->navigation('navigation')->breadcrumbs()->render('navigation');

奇妙なことに、ブレッドクラムはレンダリングされないため、前に$ this-> Navigation('navigation')-> menu()が呼び出された場合にのみ必要になります。

于 2013-02-16T00:57:01.373 に答える