2012-06-22 2 views
1

KNP MenuBundle은 매우 동적 인 방식으로 메뉴를 처리하기위한 Symfony2 번들입니다. 이 번들은 간단한 튜토리얼 예제 인 here과 함께 제공됩니다. 제안 된 예제에서 Builder 클래스 내에서 저자는 의 setCurrentUri() 함수를 $ 메뉴 개체에서 호출해야한다고 생각했습니다. 그러나 $ menu는 위에서 언급 한 기능을 구현하지 않는 MenuItem 클래스의 인스턴스입니다.KnpMenuBundle 및 제안 된 자습서 예 : 뭔가 잘못 되었나요?

<?php 
// src/Acme/DemoBundle/Menu/Builder.php 
namespace Acme\DemoBundle\Menu; 

use Knp\Menu\FactoryInterface; 
use Symfony\Component\DependencyInjection\ContainerAware; 

class Builder extends ContainerAware 
{ 
    public function mainMenu(FactoryInterface $factory, array $options) 
    { 
     $menu = $factory->createItem('root'); 
     $menu->setCurrentUri($this->container->get('request')->getRequestUri()); 

     $menu->addChild('Home', array('route' => 'homepage')); 
     $menu->addChild('About Me', array(
      'route' => 'page_show', 
      'routeParameters' => array('id' => 42) 
     )); 
     // ... add more children 

     return $menu; 
    } 
} 

PS : 중요한 수입이 예에서 누락되었음을 주목, 나는 위해 다음에보고하는

내가 here를 제공하는 예 클래스의 코드를보고, 응답 자체가 포함 된 만들려면 완전성의 :

use Symfony\Component\HttpFoundation\Request; 

답변

2

을 나는 또한 문서 업데이트를 찾고 있어요,하지만 임시 솔루션으로는 이와 같은 deps에 버전을 설정할 수 있습니다

[KnpMenu] 
    git=https://github.com/KnpLabs/KnpMenu.git 
    version=v1.1.2 

[KnpMenuBundle] 
    git=https://github.com/KnpLabs/KnpMenuBundle.git 
    target=/bundles/Knp/Bundle/MenuBundle 
    version=v1.1.0 
+0

그 버전을 설치하려했지만 "그렇지 않은 저장소"예외가 발생했습니다. – JeanValjean

+0

이제는 작동합니다. 당신의 대답은 괜찮습니다! 나는 그것을 받아 들일 것이다. 1.1.2가 최신 버전입니까? – JeanValjean

+0

예, 1.1.2는 최신 태그이며 번들과 잘 작동합니다. –