この問題に関する他のエラーを見てきました。私はまったく同じことをしました。メニューをレンダリングしようとすると、次の致命的なエラーが発生します。
Fatal error: Call to undefined method Knp\Menu\MenuItem::setCurrentUri()
in ProjectBundle/Menu/Builder.php on line 23
これが私のビルダーの外観です。
<?php
use Knp\Menu\FactoryInterface;
use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\HttpFoundation\Request;
class Builder extends ContainerAware
{
private $factory;
public function __construct(FactoryInterface $factory)
{
$this->factory = $factory;
}
public function createMenu(Request $request)
{
$menu = $this->factory->createItem('root');
$menu->setCurrentUri($request->getRequestUri());
$menu->addChild('Home', array('route' => '_home'));
$menu->addChild('About', array('route' => '_about'));
$menu->addChild('Bullshit', array('route' => '_bullshit'));
return $menu;
}
}
Github の問題トラッカーを調べたところ、この問題は修正されたようですが、同じ問題が再び発生するのはなぜですか?
つまり、 I の場合var_dump($menu)
、それがMenuItem
であり、KnpMenu のドキュメントを見ると、間違いなくsetCurrentUri()
my のメソッドがあることがわかり$menu
ます。