2015-10-19 2 views
1

У меня проблема с вызовом ControllerAction с использованием Ajax. Вызов и ответ работают хорошо, но в вызываемом контроллере DI не работает. Все внедренные службы/репозитории пустые (NULL).Зависимость Инъекция не работает в BE Ajax Call

Единственный способ, как это получить работу было назвать ObjectManager и инициализировать каждую службу/Repo непосредственно в действии:

$this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager'); 
$this->resourceFactory = $this->objectManager->get('\TYPO3\CMS\Core\Resource\ResourceFactory' 

есть простой способ, чтобы получить DI работает на Ajax звонки?

ответ

2

DI работает только в том случае, если объект создан ObjectManager, а объекты создаются ObjectManager в контексте Extbase или вручную.

Так что предполагая, что вызовы BE AJAX не выполняются в контексте Extbase (не уверен в этом), вы используете правильный способ инициализации объектов.