我需要将我的模型从控制器方法中移出,因此我得到了帮助将其更改为服务。该服务本身可以工作,但我需要能够从该服务内部连接到学说和内核。起初我试图启用教义,但这会产生问题。我怎样才能使这项工作?我已关注文档并获得了此代码。我不知道为什么我得到下面的错误。提前谢谢你的帮助。
我的配置是:
CSVImport.php
namespace Tools\TFIBundle\Model;
use Doctrine\ORM\EntityManager;
class CSVImport {
protected $em;
public function __construct( EntityManager $em ) {
$this->em = $em;
}
应用程序/配置/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;
}