依赖注入在 BE Ajax 调用中不起作用

Dependency Injection not working in BE Ajax Call

我在使用 Ajax 调用 ControllerAction 时遇到问题。 呼叫和响应运行良好,但在被调用的控制器中,DI 不工作。所有注入的 Services/Repos 都是空的 (NULL)。

它开始工作的唯一方法是调用 ObjectManager 并直接在 Action:

中初始化每个 Service/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 调用?

DI 仅在对象由 ObjectManager 创建时有效,并且对象仅由 ObjectManager 在 Extbase 上下文中创建或手动创建。

所以假设 BE AJAX 调用不是在 Extbase 上下文中完成的(对此不确定),您正在使用正确的方法来初始化对象。