Мне нужно было переместить мою модель из метода контроллера, поэтому я получил помощь, чтобы изменить ее на сервис. Сервис сам по себе работает, но мне нужно иметь возможность подключиться к доктрине и ядру изнутри этого сервиса. Сначала я пытался включить доктрину, но это создавало проблемы. Как я могу сделать эту работу? Я следовал за документами и получил этот код. Я понятия не имею, почему я получил ошибку ниже. Заранее благодарю за помощь.
Моя конфигурация:
CSVImport.php
namespace Tools\TFIBundle\Model;
use Doctrine\ORM\EntityManager;
class CSVImport {
protected $em;
public function __construct( EntityManager $em ) {
$this->em = $em;
}
приложение / 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;
}