0

Zend Framework2でDoctrine2を使用する際に少し問題があります。Doctrineで生成されたモデルを操作するために(基本的にデータを挿入してデータを入力するために)使用するカスタムクラスがあります。その作業を行うには、サービスマネージャーから利用できるエンティティマネージャーが必要です。 JasonGrimesチュートリアルのhttp://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/に示されています。

彼のチュートリアルでは、ServiceLocatorがコントローラークラスから呼び出されるので機能します(テストしました)が、私が書いているアプリケーションでは、エンティティと対話するためにカスタム(非コントローラー)クラスを使用する必要があります。どうすればこれを達成できますか?コントローラではないカスタムクラスのservicelocatorを使用していますか?よろしくお願いします

4

1 に答える 1

1

あなたは2つのステップを行う必要があります

  • Zend\ServiceManager\ServiceLocatorAwareInterfaceカスタムクラスに実装します。これにより、フレームワークがサービスロケーターを挿入できるようになります。

  • カスタムクラスをサービスに変換し、ServiceManagerを使用して取得します。このコンポーネントは、クラスがServiceLocatorAwareInterfaceを実装しているかどうかを確認し、インスタンスに戻る前にServiceLocatorを挿入します。

于 2012-11-22T08:48:31.623 に答える