我正在编写一个简单的symfony2应用程序,我想为我的默认控制器创建一个构造函数,让它运行一个带有doctrine的查询。所以我写了类似的东西:
public function __construct()
{
$product = $this->getDoctrine()
->getRepository('AcmeStoreBundle:Product')
->find($id);
DefaultController::$products = $product;
}
问题在于它表示在get()上调用了一个未定义的方法。我错过了什么?
答案 0 :(得分:0)
可能是依赖注入(DI)=>的问题。您位于控制器的构造函数中,并尝试从容器中获取Doctrine对象。但是这个容器是在你的物体结构之后注入的,这要归功于DI。
因此,当您尝试执行以下操作时:
$this->getDoctrine()...
你的容器上没有方法是很正常的,因为它在你的控制器中还不存在。