6

モデルをコントローラーメソッドから移動する必要があったので、モデルをサービスに変更するためのサポートを受けました。サービス自体は機能しますが、このサービスの内部からDoctrineとカーネルに接続できる必要があります。最初は教義を有効にしようとしましたが、それが問題を引き起こしました。どうすればこれを機能させることができますか?私はドキュメントに従い、このコードを入手しました。以下のエラーが発生した理由がわかりません。よろしくお願いします。

私の設定は次のとおりです。

CSVImport.php

namespace Tools\TFIBundle\Model;

use Doctrine\ORM\EntityManager;

class CSVImport  {
    protected $em;

    public function __construct( EntityManager $em ) {
        $this->em = $em;
    }

app / config / config.yml

services:
    csvimport:
        class: Tools\TFIBundle\Model\CSVImport
        arguments: [ @doctrine.orm.entity_manager ]

コントローラでのアクション

$cvsimport = $this->get('csvimport');

私のエラー

Catchable Fatal Error: Argument 1 passed to 
Tools\TFIBundle\Model\CSVImport::__construct() must be an instance of 
Doctrine\ORM\EntityManager, none given, called in 
.../Tools/TFIBundle/Controller/DefaultController.php on line 58 and defined in 
.../Tools/TFIBundle/Model/CSVImport.php line 12

編集、私の作業コード:

カーネルが接続されたサービスクラスコード

namespace Tools\TFIBundle\Model;

use Doctrine\ORM\EntityManager,
    AppKernel;

class CSVImport {
    protected $em;
    protected $kernel;
    protected $cacheDir;

    public function __construct( EntityManager $em, AppKernel $k ) {
        $this->em = $em;
        $this->kernel = $k;
}
4

2 に答える 2

1

注入してみる@doctrine.orm.default_entity_manager

于 2012-03-22T14:26:52.427 に答える