KnpMenuとKnpMenuBundleの安定版を使用しています- v.1.2.0 いくつかの依存関係のために v.2 を使用できません。
メニューに応じて、ブレッドクラムを作成しようとしています。
メニューから始めましょう。MenuBuilder クラスがあります。
$menu = $this->factory->createItem('main');
$menu->setLabel('Main');
$menu->addChild('home', array('route' => 'home','label'=>'Home'));
$menu['home']->addChild('level1',array('route' => 'level1', 'label' => 'Level1'));
$menu['home']['level1']->addChild('level2',array('route' => 'level2', 'label' => 'Level2'));
Knp \Menu\MenuItemクラスにはgetBreadcrumbsArray()メソッドがあります。現在アクティブなメニュー トレイル内の項目の配列を返す必要があります。以前のバージョンの KnpMenu (<= 1.1.2、私のバージョン)を使用している場合、返される配列は label => uri の形式になります。
level2ルートをロードすると、パンくずリストは次のようになります。
ホーム -> レベル 1 -> レベル 2
これは、Leve1 が Level2 の親であり、Home がその祖先でもあるためです。
その代わりに、Twig テンプレートでgetBreadcrumbsArray()メソッドを呼び出すと、次のデータが生成されます。
array(2) {
["Main"]=>
NULL
["Home"]=>
string(25) "/symfony/web/app_dev.php/"
}
Level1なし、Level2なし、 Homeのみ。なにが問題ですか?そのように動作するはずですか?私は何を間違っていますか?