0

私は単純な symfony2 アプリケーションを作成しており、デフォルト コントローラーのコンストラクターを作成し、doctrine でクエリを実行させたいと考えていました。だから私は次のようなものを書きました:

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 に答える