0

我正在编写一个简单的 symfony2 应用程序,我想为我的默认控制器创建一个构造函数,并让它运行一个带有教义的查询。所以我写了类似的东西:

public function __construct()
{
  $product = $this->getDoctrine()
    ->getRepository('AcmeStoreBundle:Product')
    ->find($id);

  DefaultController::$products = $product;
}

问题是它说在 get() 上调用了一个未定义的方法。我错过了什么?

4

1 回答 1

0

这可能是依赖注入 (DI) => 您在控制器的构造函数中,并尝试从容器中获取 Doctrine 对象。但是这个容器是在你的对象构造之后注入的,这要归功于 DI。

因此,当您尝试执行以下操作时:

$this->getDoctrine()...

你的容器上没有方法是很正常的,因为它在你的控制器中还不存在。

于 2013-06-10T07:25:59.830 回答