我已經看到有關此問題的其他錯誤。我做了完全一樣的事情。當我試圖使我得到這個致命錯誤菜單:KnpMenu,無法設置當前菜單項
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上的問題跟蹤去了,看來這個問題已經固定的,但爲什麼我又有同樣的問題?
我的意思是,當我var_dump($menu)
,它清楚地說,這是一個MenuItem
,看到KnpMenu的文件,肯定是我的一個$menu
方法setCurrentUri()
。
也許你正在使用和舊版本的捆綁?你正在運行Symfony 2.0或2.1嗎?看看你的deps或composer.json文件,看看你是否要求一個特定的版本 –
或者反過來:你使用的是最新版本的軟件包,但是過時的文檔? –
該文檔來自他們的Github頁面。 – tolgap